代码之家  ›  专栏  ›  技术社区  ›  beingalex

我的Javascript(和Mootools)函数没有返回true或false

  •  0
  • beingalex  · 技术社区  · 15 年前

    我有以下功能:

    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));
    

    我得到“未定义”。为什么会这样?

    谢谢你的帮助

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pekka    15 年前

    Ajax是 异步 onSuccess 回调稍后在 validateField return true 会消失在稀薄的空气中。

    你要么让你的呼叫同步-我肯定MooTools有一个设置-但这是非常不鼓励的,因为它可以冻结浏览器。

    或者,这是更好的选择,改变你的代码,让所有相关的事情都发生在 回拨。