我试图从函数返回 $ajax 调用返回的值,但它只返回“未定义”。如果 ajax 调用发出警报“响应”,它将返回正确的值。这是代码,我做错了什么?:
$(".insertCandidate").live("click", (function(e) {
var ids = this.id.toString().split("|");
var tempCanID = ids[1];
var canID = ids[0];
var tempName = CandidateName(tempCanID);
var canName = CandidateName(canID);
//alert("HTML: "+tempName);
$("#mergeCandidateDialog").empty();
$.blockUI({ message: $("#mergeCandidateDialog").append(
"<div>" + tempName + "s ansøgning til vil blive lagt under den eksiterende ansøger s data.<br /><br /> Ønsker du at fortsætte?<br /><br /></div>" +
"<div id=\"content\">" +
"<input type=\"button\" id=\"" + ids + "\" class=\"insertCandidateYes\" value=\"Ja\" />" +
"<input type=\"button\" id=\"insertCandidateNo\" value=\"Nej\" /></div>"), css: { cursor: 'default', fontWeight: 'normal', padding: '7px', textAlign: 'left' }
});
}));
function CandidateName(candidateID) {
var returnstring;
$.ajax({
type: "POST",
url: "/Admin/GetCandidateName/",
data: { 'candidateID': candidateID },
succes: function(response) {
returnstring = response;
return;
},
error: function(response) {
alert("FEJL: " + response);
}
});
return returnstring;
}
除非使用 asynch:false 等待 ajax 调用完成,否则无法执行此操作。但是我不会这样做,因为它会锁定浏览器,如果调用无法返回,用户将不得不崩溃。最好重构您的脚本并在 .ajax 调用的 success 函数中调用回调函数。
查看我对类似问题的回答here https://stackoverflow.com/questions/1158475/executing-next-line-after-completion-of-code-in-ajax-in-jquery
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)