通过Ajax提交表单

时间:2015-12-09 11:31:51

标签: php jquery mysql ajax

我的问题很简单 -

我使用jquery和ajax提交表单。单击该按钮时,数据将提交给数据库。

问题 - 如果用户单击提交两次,则数据库中有两个条目。我怎么解决这个问题?

我不能使用.one(),因为如果错误发生,提交按钮会调用验证函数,数据将不会被提交。因此,用户必须再次调用相同的函数。

显然我可以通过.success上的变量来做到这一点。但是这个问题的最佳解决方案是什么。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

覆盖防止点击是一种方法。

如果你想要一些即插即用的blockUI.js是好的。你所需要的只是

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

或者您可以使用.ajaxstart().ajaxstop()自行覆盖元素以启用和禁用提交按钮。

答案 1 :(得分:0)

提交表单后,您可以停用submit按钮。任何表单只能使用Submit按钮提交。所以:

$(form).submit(function () {
  $(this).find("input:submit").prop("disabled", true);
  // You can enable it back once the AJAX request is successful.
  $.ajaxSuccess(function () {
    $(form).find("input:submit").prop("disabled", false);
  });
});