2012-05-25 63 views
1

標題名爲「jQuery/Javascript未定義」的原因不是因爲我假設jQuery是一種語言,我知道jQuery是一種JavaScript語言庫,以防萬一某些迂腐讀者閱讀這個。我之所以寫這個標題是因爲我不知道代碼有什麼問題,所以jQuery或Javascript(所有jQuery的代碼編譯)都是錯誤的。Javascript/jQuery undefined

好了,回到正題,看看下面的代碼,他們給我一個未定義的值

//username validation 
function username_val(){ 
    username_value = $("input[name='username']").val(); 
    span_error = "span[name='username_error']"; 
    $(span_error).load('ajax_signup_username', {php_username_error:username_value}, function(){ 
     return true; 
    }); 
} 

我提醒一下,然後一個「不確定」返回。我認爲一個真正的將被返回。

function final_val(){ 
     alert(username_val()); 
} 

編輯:你們中的一些人說,我只能在成功PARAM返回true,但我需要這個驗證,因此,如果所有的驗證方法是真實的,在final_val將返回true 。關鍵是我需要final_val()中的真實值,或者如果你們有其他方法來驗證它,請告訴我。注意:我很急,所以如果我誤解了你的回答,請原諒我。我會離開幾個小時,直到那時我會檢查你的答案。

謝謝!

+0

用'var'聲明變量。另外,使用「」上的「name」屬性不正確。給它一個「id」或「class」值,然後用它來找到它。 – Pointy

+0

@Pointy感謝您的提示! –

回答

2

您需要使alert(username_val());在成功函數內。由於​​是異步方法,因此立即調用後它不能return true。所以,你可以試試這個:

$(span_error).load('ajax_signup_username', {php_username_error:username_value}, function(){ 
    alert('Something'); 
    var response = true; 
    final_val(response); 
}); 

function final_val(response){ 
    alert(response); 
} 

here是DOCO

+0

仍然給我未定義,我怎麼能返回一個真正的價值在該方法(username_val())? –

+0

@PHPForLife你可以嘗試我的更新,我之前提到你可以根據需要捕獲迴應。 – thecodeparadox

+0

Dang,我剛剛爲此創建瞭解決方法,應該首先看到您的回覆。所以這是做到這一點的正確方法。我會確保在下次解決問題之前先提出我的解決方法,謝謝! –