2011-10-04 55 views
0

我想爲文本框字段編寫通用函數。假設我有3個文本框。在驗證時間。我寫了所有三個文本框的特定條件..像包含jQuery驗證的代碼

if(conpwd ==='' | conpwd ==='') 
    { 
     $('#errorconpwd').show('fast'); 
     $('#conpwd').focus().css({'background-color':'#FFC'}); 
     return false; 
     } 

    if(fname ==='' | fname === null) 
    { 
     $('#errorfname').show('fast'); 
     $('#fname').focus().css({'background-color':'#FFC'}); 
     return false; 
     } 

    if(lname ==='' | lname === null) 
    { 
     $('#errorlname').show('fast'); 
     $('#lname').focus().css({'background-color':'#FFC'}); 
     return false; 
     } 

像這裏,如果確認密碼字段爲空。我已經把注意力集中在CSS屬性上了,因爲fname又是我爲了姓氏而再次寫的。現在,如果第一個名字是重點和用戶輸入一些文本比我想再次使CSS默認。我的意思是說,而不是寫作

$('#fname').blur(function(){ 
    if($('#fname').val()!=''){ 
    $('#fname').css({'background-color':'#FFF'}); 
    } 
} 

意味着我想寫所有條件。我不想爲每個領域單獨編寫。 Similary可以一次性包含上面用於確認密碼,fname,lname的代碼嗎?

根據我在谷歌搜索。我想用$(本)選擇這裏雖然修改..

回答

0

+1的jQuery驗證插件, ,你可以設置一個類的一切:

<input id=conpwd class=validate> 
<input id=fname class=validate> 
<input id=lname class=validate> 

和你可以使用$(this)在該類的元素上觸發事件來做你想做的事情。

$('.validate').blur(function(){ 
    if($(this).val()!=''){ 
    $(this).css({'background-color':'#FFF'}); 
    } 
}); 
+0

如果我們有一個以上的課程,這可能嗎?一個輸入標籤中有多少班級的限制。 –

+0

你可以有多少你喜歡的,因爲他們在引語中,他們都是一個單詞,就像這樣:'class =「validate send_message delete」' –

+0

我附加了類標籤到所有這些。像... 我該如何去死,因爲我正在刷新窗體。我用* if($(this).val()!=''){('。error')。hide(); $(this).css({'background-color':'#FFF'}); } *雖然它沒有給我錯誤,但它刷新了窗體.. –

0

這裏有一個靈活的驗證形式:jQuery Validation

基本上它採用的是語法像

<input data-validate-presence='true' /> 
<input data-validate-presence='true' data-validate-email='true' /> 

,並自動應用這些規則。如果您需要聯合檢查和複雜的驗證(如服務器獨特性檢查),您可以通過擴展options.validators來輕鬆擴展它,並且它可能會產生全局影響,因此一旦添加,您可以在整個項目中使用這個新的驗證器。

它也足夠靈活,可以讓您選擇顯示工具提示,消息框或任何其他您想要的格式的錯誤。並小於3kb。

一些更多的樣品可以在這裏找到http://www.tectual.com.au/downloads/jquery/validation/index.html