我有几个表格我想一次发布到我的服务器。然后,我想听他们所有人完成。如果我听到它们都成功完成,我将采取一项行动,如果我看到一项失败,我将采取不同的行动。
我相信我应该使用 jQuery 的 .when():http ://api.jquery.com/jQuery.when/
StackOverflow 上的这篇文章展示了一个示例,说明当您明确定义了所有 ajaxRequests 时如何做到这一点:等到所有 jQuery Ajax 请求都完成?我想知道是否有可能以某种方式通过循环达到相同的效果?
我目前有这段代码,但它不会等待全部完成:
_.each($('form'), function (form) {
var $form = $(form);
if ($form.valid()) {
// Post form data
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: getFormData($form),
success: function () {}
error: function(){}
});
}
});
编辑:虽然我接受了一个答案.. 值得注意的是,正确的“答案”正在改变设计要求。我们意识到,如果另一笔交易失败,撤销一笔交易将非常困难,但我们必须将所有交易保持在同一状态。这使我们走上了 Beetroot 建议的道路,创建了一个巨大的模型,但这增加了许多其他复杂性。因此,我们现在只需在选项卡之间切换之前让用户保存。