2011-11-09 37 views
0

我有這個JavaScript這是偉大的工作 -轉換JavaScript函數在一個對象傳遞

var employeename = $("#employeename"); 
var employeenameInfo = $("#employeenameInfo"); 
employeename.blur(validateEmployeename); 

function validateEmployeename(){ 
    //if it's NOT valid 
    if(employeename.val().length < 4){ 
     employeename.addClass("error"); 
     employeenameInfo.text("We want names with more than 3 letters!"); 
     employeenameInfo.addClass("error"); 
     return false; 
    } 
    //if it's valid 
    else{ 
     employeename.removeClass("error"); 
     employeenameInfo.text("Full Name."); 
     employeenameInfo.removeClass("error"); 
     return true; 
    } 
} 

但是不是有這個功能對我的所有不同領域的大名單我想通過在現場例如

function validateGeneric(field){ 

但無論我嘗試只是給我的錯誤,我真的卡住了。任何幫助讚賞。這也帶來了信息領域的另一個問題,任何方式我可以存儲原始文本,只是恢復,而不是一個新的字符串?

+0

所以,你可以展示代碼,不工作?很難修復你看不到的代碼... – lonesomeday

+0

提供錯誤的郵政編碼。 – Bartosz

+0

要恢復你的「信息」字段的內容,建立一個字典:'var infoDic = {employeenameInfo:「全名。」,xxx:「xxx」等。然後使用infoDic檢索您的字段的內容。 – Rodolphe

回答

0

您可以使用$(this)來獲取觸發事件的字段。你也應該把信息字段作爲同級與信息類

$('input.to_be_validated').blur(validateInput); 

function validateInput(e){ 
    var input = $(this) 
    var info = input.parent.find('.info') 
    //if it's NOT valid 
    if(input.val().length < 4){ 
     input.addClass("error"); 
     info.text("We want names with more than 3 letters!"); 
     info.addClass("error"); 
     return false; 
    } 
    //if it's valid 
    else{ 
     input.removeClass("error"); 
     info.text("Full Name."); 
     info.removeClass("error"); 
     return true; 
    } 
} 

編輯:忘了信息字段

+0

信息欄怎麼樣? – Rodolphe

+0

謝謝,請儘快試用! –

0

所有你需要做的是引用field VAR你會傳遞到你的函數因此你的代碼變成:

function validateEmployeename(field, fieldinfo){ 
    //if it's NOT valid 
    if(field.val().length < 4){ 
     field.addClass("error"); 
     fieldinfo.text("We want names with more than 3 letters!"); 
     fieldinfo.addClass("error"); 
     return false; 
    } 
    //if it's valid 
    else{ 
     field.removeClass("error"); 
     fieldinfo.text("Full Name."); 
     fieldinfo.removeClass("error"); 
     return true; 
    } 
} 
0

你也可以使用多個選擇:

$("input[name='employeename'], input[name='employeename2']").blur(function() { 
    // put your validation routine for fields that should contain names 
    $(this).next("#employeenameInfo").html("info here"); // note that you don't have unique id here, better to find element you want to put your error message by tagname/class, like "span.error" 
}); 

$("input[name='employeemail'], input[name='employeemail2']").blur(function() { 
    // put your validation routine for fields that should contain email addresses 
    $(this).next("#emailInfo").html("info here"); // note that you don't have unique id here, better to find element you want to put your error message by tagname/class, like "span.error" 
}); 

你不需要通過什麼驗證功能這樣的話,一切都將圍繞$(this)解決,提供你有適當的元素,以填補附近的錯誤信息:

<input type="text" name="employeename" /> 
<span class="error" /> 
相關問題