我正在编写一个 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,但似乎不起作用。
任何人都可以给我一个解决方案或替代方案,将每个表单数据一一提交到服务器,
非常感谢
最佳答案
使用 jQuery 的 $.when
执行串行、异步、ajax 请求的快速方法
var requests = [];
$('.frmroldcon').each(function() {
$.when.apply($,requests).then(function() {
requests.push($.ajax({/* your ajax request */});
});
});
但是,您没有显示必须连续执行这些请求的要求。如果您只需对服务器进行 1 次调用(而不是 60 次)就可以完成所需的所有操作,那么您就应该这样做。
关于javascript - JQuery AJAX async false 在 Chrome 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42187882/