我使用以下代码通过 AJAX 提交表单:
$( 'form' ).submit(function(e) {
$.ajax({
type: 'POST',
url: ajax_url,
dataType: 'json',
data: {
'action': 'my_action',
'str': $( 'form' ).serialize()
},
success: function( data ) {
// Do something here.
},
error: function( data ) {
// Do something here.
}
});
return false;
});
背景
我的 PHP 处理程序执行各种任务,然后发回响应。然后我可以做一些事情data
在成功或错误函数中。
我的问题
当用户双击表单的提交按钮时,会发生两次 AJAX 调用,这会导致 PHP 处理程序内的代码执行两次。
我的问题
如果用户双击提交,如何避免我的代码被执行两次?
只需添加一些控制变量:
var isSubmitting = false;
$( 'form' ).submit(function(e) {
if(isSubmitting) {
return;
}
isSubmitting = true;
$.ajax({
type: 'POST',
url: ajax_url,
dataType: 'json',
data: {
'action': 'my_action',
'str': $( 'form' ).serialize()
},
success: function( data ) {
isSubmitting = false;
// Do something here.
},
error: function( data ) {
isSubmitting = false;
// Do something here.
}
});
return false;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)