for .ajax .when,是否有可能使用jQuery的.when()与forEach循环的Ajax调用?

我有几种形式,我想马上发布到我的服务器上。然后,我想倾听他们所有的要完成。如果我听到他们都成功完成,我会采取一个行动,如果我看到一个失败,我会采取不同的行动。是否有可能使用jQuery的.when()与forEach循环的Ajax调用?

这个职位在计算器上显示了如何当你把所有的ajaxRequests明确定义的做到这一点的例子:Wait until all jQuery Ajax requests are done?我想知道是否有可能以某种方式实现与循环相同的效果?

我现在有这样的代码,但它不会等待所有完成:

_.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(){}

});

}

});

编辑:虽然我已经接受了一个答案..这是值得注意的是,正确的“答案”正在改变设计要求。我们意识到,如果另一个交易失败,撤消一项交易将非常困难,但我们必须保持所有交易处于相同状态。这使我们走上了甜菜根建议的道路,创造了一个巨大的模型,但是这增加了其他一些复杂性。因此,我们现在只需要在切换标签之前保存用户。

+1

糟糕的设计。一次提交所有表格的数据。一个请求,一个承诺。 –

+0

你能深入探讨一下吗?如果要发布大量数据并且我不想要过大的POST,会发生什么情况?另外,我的一些表单可能不是很脏,所以接收服务器端方法将不得不容纳可变数量的模型,而不是仅仅让每个服务器端方法在收到相应的POST时单独响应?此外,我想对每个表单的错误回调有不同的回应。这很复杂,如果我只有一个错误回调,因为我必须找出哪些错误。 –

+0

除非有标准的方法/实用程序,否则需要一点思考,基本上涉及所有序列化表单的连接,并使用表单标识符来标识每个数据集。在服务器端,您可能需要一些自定义请求解析来将每个表单的单个数据项分开。然后,您将拥有处理所有表单数据所需的所有数据,并组成一个复合(JSON编码)响应,其中包括用于标记数据的表单ID。回到客户端,循环回应,并采取相应措施。简单! :-) –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值