javascript - 避免在第一次 ajax 调用完成之前通过 ajax 请求提交多个表单
问题描述
我有一个通过 ajax 调用提交的表单。但是,当用户多次单击表单提交按钮时,每次 ajax 调用都会在第一次 ajax 调用完成之前运行。所以我想停止多次提交,直到第一次调用完成。这是我的ajax调用。
jQuery('#form1').submit(function(){
var form_data = jQuery(this).serializeArray();
form_data = JSON.stringify(form_data);
var url = 'My ajax URL';
jQuery.ajax({
type: "POST",
url:url,
data: {
'data': form_data
},
success: function(data){
alert('success');
}
});
})
解决方案
您可以简单地禁用您的提交按钮。
例如,您有一个带有 ID 的按钮mySubmitButton
jQuery('#form1').submit(function(){
$('#mySubmitButton').prop('disabled', true); /* <-- disable button */
var form_data = jQuery(this).serializeArray();
form_data = JSON.stringify(form_data);
var url = 'My ajax URL';
jQuery.ajax({
type: "POST",
url:url,
data: {
'data': form_data
},
success: function(data){
$('#mySubmitButton').prop('disabled', false); /* <-- enable button */
alert('success');
}
});
})
旁注:您还应该始终在服务调用中具有错误功能,并且您也应该在其中启用您的按钮。
推荐阅读
- zsh - 从零开始显示 Zsh shell 选择菜单
- sql - 如何加入包括不存在的关系的 SQL 表
- android - 最小化android中以前活动中的活动
- c# - 程序集引用版本冲突——如何解决?
- c++ - 在 std::map 中搜索限制搜索值的键
- c# - Unity 上的世界空间用户界面?
- swift - 如何安全正确地将 [[T]] 转换为 UnsafePointer
> 暂时 - arrays - 小计数组公式不会相应地计算单元格
- javascript - EINVALIDTAGNAME 的简单解释?
- c# - Interlocked.Exchange() 具有依赖于读取锁定变量的自定义条件