私がやろうとしているのは、一連のチェックボックスを通過することです。
チェックされているそれぞれについて、(ajax 呼び出しを使用して) いくつかの計算を実行する必要があります。エラーが発生した場合は、ループを中断してメッセージを返す必要があります。
すべての ajax 呼び出しの実行には約 0.4 秒かかりますが、一度に最大 4 つしかチェックできないため、問題になることはありません。
しかし、私が直面している問題は、エラー function() 内のアラート ボックスの前に最後のアラート ボックスがポップアップすることです。エラー関数は機能しますが、常に最後の関数の後に表示されます。
呼び出しを非同期 = 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);