2010-07-15 110 views
0

我有以下功能:我的JavaScript(和Mootools的)函數沒有返回true或false

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

我得到「undefined」。爲什麼是這樣 ?

感謝所有幫助提前

  • 亞歷

回答

1

Ajax是異步。在validateField函數完成後,將在稍後調用onSuccess回調。 return true將消失在空氣中。

你必須讓你的電話同步 - 我確定MooTools有一個設置 - 但這是非常不鼓勵的,因爲它可以凍結瀏覽器。

或者,這是更好的選擇,更改您的代碼,以便在onSuccess回調中發生所有相關事件。

+0

我需要對某個元素執行某些操作,但我想你是對的,我可以將該元素作爲參數傳遞。謝謝你的答案。 – beingalex 2010-07-15 11:04:08

+0

@beingalex不客氣。傳遞元素不應該是一個問題,你使用(或傳遞給)'validateField'函數的變量將在'onSuccess'回調中自動提供。 – 2010-07-15 11:05:23

相關問題