То, что я пытаюсь сделать, - это пройти через серию флажков.
Для каждого из них, для которого это проверено, я должен выполнить некоторые вычисления (используя вызов ajax). Если есть ошибка, я должен разорвать цикл и вернуть сообщение.
Каждый ajax-вызов занимает около 0,4 секунды, но это никогда не будет проблемой, потому что я могу проверить только 4 из них в любой момент времени.
Но проблема, с которой я сталкиваюсь, заключается в том, что всплывающее окно с последним предупреждением всплывает перед тем, которое внутри функции error (). Функция ошибок работает, но она всегда появляется после последней.
У меня сложилось впечатление, что при определении вызова как асинхронного = 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);