我有以下功能:
function validateField(query) {
new Request.JSON({
onRequest : function() {
},
onSuccess : function(json){
return true;
},
data : query + '&validate=true',
url : base + 'ninjquiry.php'
}).send();
}
现在onSuccess肯定会被解雇,因为我可以在其中放置一个console.log并且它可以工作,但是如果我在其他地方执行以下操作:
console.log(validateField(query));
我得到“未定义”。为什么是这样 ?
感谢您提前提供任何帮助
答案 0 :(得分:1)
Ajax是异步。在onSuccess
函数完成后,稍后将调用validateField
回调。 return true
将消失得无影无踪。
你必须让你的呼叫同步 - 我确信MooTools有一个设置 - 但是非常气馁,因为它可以冻结浏览器。
或者,这是更好的选择,更改代码,以便在onSuccess
回调中发生相关的所有内容。