2016-04-14 36 views
1

我對JQuery和Javascript一般都很陌生,我正在爲學校開發一個項目。雖然我可以在不定義任何函數的情況下讓所有工作都可以工作,但我想減少冗餘代碼。JQuery沒有在.blur()中執行已定義的函數()

這裏有一點我想要做的事:

function firstNameChanged() { 
    var x = document.getElementById("firstName").value; 

    if (x == null || x == "") { 
     $("#firstNameError").html(" First name can't be blank!"); 
    } 
    else { 
     $("#firstNameError").html(""); 
    } 
} 

$(document).ready(function(){ 

$("#firstName").blur(firstNameChange()); 
} 

是的,我敢肯定所有的ID存在,因爲代碼工作時,我把它作爲:

$("#firstName").blur(function(){ 
    var x = document.getElementById("firstName").value; 

    if (x == null || x == "") { 
     $("#firstNameError").html(" First name can't be blank!"); 
    } 
    else { 
     $("#firstNameError").html(""); 
    } 
}) 

我我查了很多關於Javascript和JQuery語法的文檔,在Chrome中調試過,我無法弄清楚。

+0

您調用的函數,你應該將它作爲一個回調:'$( 「#名字」)模糊(firstNameChange);' – Pevara

回答

3

blur需要函數引用作爲參數。 firstNameChange()立即致電的功能。取下()

$("#firstName").blur(firstNameChange); 
+0

完美修復!謝謝,語法很棘手。 –