当用户双击提交按钮时,需要避免向服务器提交表单两次
Need to avoid submit form twice to the server when user double clicks on submit button
使用jquery validatye插件,我正在验证并提交表单到服务器,服务器将表单数据存储在数据库中。问题是当用户双击表单时,会有多个请求进入并向服务器提交两次,从而导致数据库中具有相同数据的多个记录。我想避免这种情况。我希望表单只提交一次,即使用户在提交按钮上单击了两次。
代码: var validator = jQuery("#form")
.validate(
{
errorClass : "invalid",
validClass : "valid",
submitHandler : function() {
//function to submit form to client
submitFormtoClient();
},
当用户单击submit时,验证表单,然后调用submit处理函数。我希望它只被调用一次即使提交按钮被点击了两次
只有在表单有效且点击提交按钮后才会触发submitHandler
。如果在第一次点击提交按钮后立即禁用它,就不可能出现双击的情况。
submitHandler: function(form) { // form is valid
// disable submit button since it was already clicked and submit is happening next
$('#your-submit-button').prop('disabled', true);
// function to submit form to client
submitFormtoClient();
}
当您确定表单是有效的并且应该提交时,在"提交"中,在return true
之前,您可以将表单的提交按钮设置为禁用,并且它不应该提交两次。
如果你确定它不应该提交,你会返回false。
$('.foo-form').on("submit", function(event){
$(this).children('button[type=submit]').prop('disabled', true);
return true;
});
在这种情况下,我使用button[type=submit]
,但你也可以使用input[type=submit]
。
相关文章:
- Jquery提交表单而不刷新
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 每次提交表单时都会重新加载网页
- Razor中的自动提交表单
- 使用 JavaScript 自动提交表单
- 点击相同的按钮打开模型,然后提交表单
- 添加和删除隐藏字段数组中的值,而不提交表单
- 使用Ajax提交表单
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 有登录表单时无法提交表单
- 带有select的jquery提交表单不起作用
- 如何防止回车键提交表单,但仍然允许回车工作
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- 在提交表单之前确定重复值
- 如何创建动态ajax提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 提交表单后,Watir文本框输入未持续(重置为以前的文本框输入)