我正在为服务器逐个编写表单数据发送列表的jQuery。
它完全适用于Firefox,但当我使用chrome时,它会立即发送所有数据
这是我的代码
$('.frmroldcon').each(function(){
var thobj=this;
$(thobj).prev().prev().prev('.failedicoconold').hide();
$(thobj).prev('.doneicoconold').hide();
$(thobj).prev().prev('.proccesicoconold').show();
fuser = jQuery('input[name="fusername"]',thobj).val();
fpass = jQuery('input[name="fpassword"]',thobj).val();
$.ajax({
type: "POST",
async: false,
cache:false,
url: "checkcon.php",
data: { checkcons: "1", fusername: fuser, fpassword: fpass},
success: function(data){
$(thobj).prev().prev('.proccesicoconold').hide();
if(data==0){
$(thobj).prev().prev().prev('.failedicoconold').show();
window.errc=window.errc+1;
}
else{
$(thobj).prev('.doneicoconold').show();
}
}
});
});
我正在使用jQuery版本2.1.4,也尝试过其他旧版本,如1.4但似乎无效。
任何人都可以为此提供解决方案,或者将每个表单数据逐个提交给服务器,
非常感谢
答案 0 :(得分:1)
使用jQuery $.when
var requests = [];
$('.frmroldcon').each(function() {
$.when.apply($,requests).then(function() {
requests.push($.ajax({/* your ajax request */});
});
});
但是,您还没有要求必须按顺序执行这些请求。如果您可以通过1次调用服务器而不是60次来完成所需的一切,那就是您应该采用的方式。