1

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

我阅读了有关 $.ajax() 的信息,但在 jQuery 得到响应之前,我不明白如何停止表单提交。它是自动完成的吗?

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

我知道这个问题的答案很简单,而且我可能会因为让自己复杂化而绕圈子!

谢谢你的帮助!

4

3 回答 3

8

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

$.ajax({
  url: 'my_url.php',
  async:false,
  .....
});
于 2012-05-04T00:21:18.927 回答
1

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

您需要立即取消提交。(通过return falseing 或通过调用e.preventDefault())然后,当您从服务器获得回复时,您可以在 AJAX 回调中重新提交表单。
(只要确保您第二次不再执行 AJAX 请求即可)

于 2012-05-04T00:19:30.307 回答
0

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

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

如果函数返回true默认动作发生,否则默认动作被阻止。

于 2012-05-04T00:22:22.193 回答