jQuery:提交表单之前的Ajax

时间:2012-05-04 00:17:29

标签: php jquery ajax

在提交表单时,但在发送表单之前,我在确定如何执行操作时遇到了一些麻烦。问题是动作标签将用户重定向到不同的站点,当我单击提交按钮时,我需要AJAX发送电子邮件。即使AJAX失败,也应该重定向用户。

我读到了$ .ajax()但我不明白如何在jQuery获得响应之前停止表单子目录。是自动完成的吗?

在另一个主题上,我看到建议使用输入类型“按钮”而不是提交。 我知道这将允许我手动一个$(表格).submit();后来,给了我更好的控制权,但我仍然完全理解前一部分。

我知道这个问题的答案非常简单,而且我可能会因为让自己变得复杂而乱窜!

感谢您的帮助!

3 个答案:

答案 0 :(得分:8)

要在ajax请求完成之前阻止表单提交,您可以禁用async选项。

$.ajax({
  url: 'my_url.php',
  async:false,
  .....
});

答案 1 :(得分:1)

您在其他地方看到的建议正是您需要做的。

您需要立即取消提交。 (通过return false或致电e.preventDefault()) 然后,当您收到服务器的回复时,您可以在AJAX回调中重新提交表单 (只是确保你第二次没有再次执行AJAX请求)

答案 2 :(得分:0)

您可以使用表单的onSubmit属性。

<form action="./something.php" method="post" onSubmit="someFunction();">

如果函数返回true,则会发生默认操作,否则将阻止默认操作。