【发布时间】:2013-02-14 16:33:37
【问题描述】:
我会马上说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 是异步,所以函数在调用完成之前返回。无论你想做什么,都应该在回调中完成。
-
知道了,巴尔玛。谢谢 - 功能现在可以根据需要工作。
标签: function jquery return-value