使用 when() 到 运行 多个 Ajax 函数
Using when() to Run Multiple Ajax Functions
使用 jQuery when(),我正在尝试 运行 表单上的多个 Ajax 函数提交,等待他们收到回复,完成后,最后提交表单。我的代码是:
$('form[name="regForm"]').on('submit', function( e ) {
e.preventDefault();
$.when( function () {
ajaxOne();
ajaxTwo();
ajaxThree();
}
).done(function() {
$('form[name="regForm"]').unbind('submit').submit();
});
});
表单已提交,但 Ajax 函数从未触发。我究竟做错了什么?感谢您的帮助。
您 $.when()
写错了
每个 ajax 调用承诺应该是一个参数(或者在 jQuery 3+ 中可以是承诺数组)
$(function(){
$('form[name="regForm"]').on('submit', function( e ) {
e.preventDefault();
$.when( ajaxOne(), ajaxTwo(), ajaxThree()
).done(function() {
$('form[name="regForm"]').unbind('submit').submit();
});
});
});
这还假设表单选择器是正确的,并且每个 ajax 函数 returns 和 $.ajax
承诺类似
function ajaxOne()(
return $.ajax({...})
}
你必须作为参数传递
$.when.apply($, arrayOfDefferds).done(doStuff);
注意获取回复。
使用 jQuery when(),我正在尝试 运行 表单上的多个 Ajax 函数提交,等待他们收到回复,完成后,最后提交表单。我的代码是:
$('form[name="regForm"]').on('submit', function( e ) {
e.preventDefault();
$.when( function () {
ajaxOne();
ajaxTwo();
ajaxThree();
}
).done(function() {
$('form[name="regForm"]').unbind('submit').submit();
});
});
表单已提交,但 Ajax 函数从未触发。我究竟做错了什么?感谢您的帮助。
您 $.when()
写错了
每个 ajax 调用承诺应该是一个参数(或者在 jQuery 3+ 中可以是承诺数组)
$(function(){
$('form[name="regForm"]').on('submit', function( e ) {
e.preventDefault();
$.when( ajaxOne(), ajaxTwo(), ajaxThree()
).done(function() {
$('form[name="regForm"]').unbind('submit').submit();
});
});
});
这还假设表单选择器是正确的,并且每个 ajax 函数 returns 和 $.ajax
承诺类似
function ajaxOne()(
return $.ajax({...})
}
你必须作为参数传递
$.when.apply($, arrayOfDefferds).done(doStuff);
注意获取回复。