我的问题很简单 -
我使用jquery和ajax提交表单。单击该按钮时,数据将提交给数据库。
问题 - 如果用户单击提交两次,则数据库中有两个条目。我怎么解决这个问题?
我不能使用.one(),因为如果错误发生,提交按钮会调用验证函数,数据将不会被提交。因此,用户必须再次调用相同的函数。
显然我可以通过.success上的变量来做到这一点。但是这个问题的最佳解决方案是什么。
感谢您的帮助。
答案 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);
});
});