我无法从此功能中获取值,我不确定原因但是返回空白。我用firebug调试它,它运行两次,第一个返回空,然后第二个返回值。
我知道如何纠正这个问题。
function validation() {
if (val()); {
alert("Error");
} else {
alert("Pass");
}
}
function val() {
var answer;
dojo.xhrGet({
url: "ValodS?option=12",
handleAs: "text",
load: function (response) {
if (response == 'Pass') {
answer = false;
} else {
answer = true;
}
}
});
return answer;
}
答案 0 :(得分:1)
当val返回时,未分配answer
。您正在调用发送http请求的异步操作。然后控制流程继续,当http请求最终完成时,将执行您定义的分配answer
的匿名函数。
答案 1 :(得分:1)
问题是你在发送之前就回复了答案(AJAX请求在后台运行而不会阻塞调用代码。
最简单的解决方案是让调用者将回调函数传递给您的函数。然后,您可以在load
处理程序内调用回调函数(从而以这种方式传递数据)。
答案 2 :(得分:0)
你还有一个额外的;在if
从
更改第一行if (val());
到
if (val())