如何防止表单从客户端多次提交?
2022-08-30 05:40:12
有时,当响应缓慢时,可能会多次单击提交按钮。
如何防止这种情况发生?
使用不显眼的 javascript 在表单提交后禁用表单上的提交事件。下面是一个使用 jQuery 的示例。
编辑:修复了在不单击提交按钮的情况下提交表单的问题。谢谢,一番。
$("body").on("submit", "form", function() {
$(this).submit(function() {
return false;
});
return true;
});
我尝试了vanstee的解决方案以及asp mvc 3不显眼的验证,如果客户端验证失败,代码仍然运行,并且表单提交将永远被禁用。更正字段后,我无法重新提交。(见bjan的评论)
所以我修改了vanstee的脚本,如下所示:
$("form").submit(function () {
if ($(this).valid()) {
$(this).submit(function () {
return false;
});
return true;
}
else {
return false;
}
});