在提交表单之前,我需要完成一些ajax请求。
如何在form.submit()调用中暂停直到完成所有ajax请求?
var incompleteAjaxCalls = 0
// each ajax call runs incompleteAjaxCalls++
// followed by incompleteAjaxCalls-- upon completion
myForm.submit(function () {
//sleep while incompleteAjaxCalls > 0;
});发布于 2014-03-20 15:45:12
阻止表单提交,然后在ajax调用完成后提交。
myForm.submit(function (e) {
e.preventDefault();
var self = this;
$.when(
$.ajax({url: 'ajax1'}),
$.ajax({url: 'ajax2'})
).always(function() {
self.submit();
});
});编辑:
对于数组,您可以做
myForm.submit(function (e) {
e.preventDefault();
var self = this,
xhr = [];
xhr.push(
$.ajax({url: 'ajax1'})
);
xhr.push(
$.ajax({url: 'ajax2'})
);
$.when.apply($, xhr).always(function() {
self.submit();
});https://stackoverflow.com/questions/22538031
复制相似问题