我正在尝试做的是通过一系列复选框。
对于检查的每一个,我都必须执行一些计算(使用 ajax 调用)。如果有错误,我必须打破循环并返回一条消息。
每个 ajax 调用大约需要 0.4 秒来执行,但这绝不会成为问题,因为在任何给定时间我最多只能检查 4 个。
但我面临的问题是,最后一个警告框在错误函数()内的那个之前弹出。错误函数确实有效,但它总是出现在最后一个函数之后。
我的印象是,通过将调用定义为 asynchronous=false,代码执行将等到调用返回响应。这是一个错误的假设吗?
有没有办法做到这一点?
提前致谢
$("input[id*='chk_aut']").each(function() {
if(this.value=="on") {
$.ajax({
type: "GET",
url: "testpage.asp",
cache:"false",
async:"false",
data: "which=checkvalues&value="
+ i_value
+ "&ref="+$("#cb_ref").val()
+ "&nif="+$("#txt_nif").val()
+ "&day="+i_day
+ "&month="+i_month
+ "&hours="+i_hours
+ "&year="+i_year + "&ms="
+ new Date().getTime(),
success: function(msg) {
//do something but continue the loop
},
error: function() {
i_result =false;
alert("An error has occurred");
return false;//break the loop
}
});
}
});
alert(i_result);