我可以使用提交按钮激活AJAX功能吗?

ewo*_*wok 1 html javascript php forms ajax

我有一个HTML表单,目前只是将数据直接发布到PHP文件.我想更新代码,以便提交按钮将数据发送到JavaScript函数,以便我可以创建一个AJAX函数.提交按钮是否可以激活JavaScript函数而不是发布到php文件?我唯一想到的是下面的内容,这显然不起作用:

<html>
<head>
<script type="text/javascript">
function ajax(){
  //...
}
</script>
</head>

<body>
<form action="ajax();">
  <!-- ... -->
  <input type="submit" value="Submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 6

您可以为"提交"输入提供一个"单击"处理程序,该处理程序显式阻止执行默认行为.

<input type='submit' value='Submit' onclick='ajax(event)'>
Run Code Online (Sandbox Code Playgroud)

然后在函数中:

function ajax(event) {
  if ('preventDefault' in event) event.preventDefault();
  event.returnValue = false; // for IE before IE9
  // ...
}
Run Code Online (Sandbox Code Playgroud)

编辑 @Esailija正确地指出另一个选项是处理<form>元素上的"submit"事件.该函数看起来几乎相同,实际上完全相同,但你可以像这样连接它:

<form id='yourForm' onsubmit='ajax(event)'>
Run Code Online (Sandbox Code Playgroud)

这也会陷入诸如"回车"键动作之类的事情.