我有這個jQuery調用AJAX,jQuery的AJAX調用不設置變量的值
function findTaxForProcess(argPrc, argPrcAmount, argPrcDiscount) {
if (argPrc == '') { return 0; };
var _valToReturn;
if ($('#hdnTaxBefore').val() == "true") {
// if tax is calculated before discount
$.ajax({
url: '/AutoComplete.asmx/FindProcessTax',
type: 'POST',
timeout: 5000,
datatype: 'xml',
cache: false,
data: 'argProcess=' + argPrc + '&argAmt=' + argPrcAmount,
success: function (response) {
_valToReturn = $(response).find('double').text();
alert(_valToReturn);
}
});
}
else {
// the tax is calculated after discount
$.ajax({
url: '/AutoComplete.asmx/FindProcessTaxAter',
type: 'POST',
timeout: 5000,
datatype: 'xml',
cache: false,
data: 'argProcess=' + argPrc + '&argAmt=' + argPrcAmount + '&argDiscount=' + argPrcDiscount,
success: function (response) {
_valToReturn = $(response).find('double').text();
alert(_valToReturn);
}
});
}
alert('came here ' + _valToReturn);
return _valToReturn;
};
的問題是第一個警報顯示2.873
(在其他情況下,它顯示2.178
),但問題是第二個警告,第二次提醒顯示,came here undefined
??? FTW?黑客出了什麼問題?我一直在這附近搞了兩天,但什麼也沒有!
爲什麼_valToReturn
的值在第二次提醒時未定義?並首先定義?任何幫助?
編輯:警報came here _valToReturn
是第一個警報後執行。所以,(幾乎!)所有回答者都表示,如果它之前來了,它將是不確定的,我知道,但正如我所說的,它之前之後正在執行。
如果事實的確如此,爲什麼警告'警報(來到這裏+ _valToReturn')總是在**第一個警報之後執行**? – Razort4x
@ Razort4x查看我更新的答案。我希望它有幫助。 –