0
我會馬上說出this question似乎解決相同情況的蝙蝠,但對於我的生活,我沒有看到解決方案/答案是什麼那裏。也許有人需要爲我更清楚地「拼出來」!
我有以下功能:
function CheckIfUrlExists(checkUrl) {
var exists = '';
$.ajax({
type: 'POST',
url: '../scripts/branchAdmin.php',
data: {checkUrl: checkUrl},
cache: false,
success: function(response) {
console.log('response: ' + response);
if (response === 'true') {
exists = 'true';
} else if (response === 'false') {
exists = 'false';
}
},
error: function(response) {
// return false and display error(s) from server
exists = 'false';
}
});
console.log('exists: ' + exists); // always displays empty string, regardless of what the php script returns
return exists;
}
而且我這個調用它:
var exists = CheckIfUrlExists($tr.find('input.editUrl').val());
if (exists === 'false') {
//if (!CheckIfUrlExists($tr.find('input.editUrl').val())) {
// New URL entered, verify user want to save it
$('#confirmAddNewUrlDialog').data('row', $tr).dialog('open');
... // code to handle result
}
我怎樣才能獲得「CheckIfUrlExist()函數返回一個true或false(或任何值),所以我可以在上面的代碼中使用它?
答案的重點在於您不應該返回此函數的結果。 AJAX是_asynchronous_,所以函數在調用完成之前返回。無論你想做什麼都應該在回調中完成。 – Barmar 2013-02-14 16:43:28
明白了,巴爾瑪。謝謝 - 功能現在按需要工作。 – marky 2013-02-14 17:20:30