2017-09-20 77 views
0

我寫了一個基本的驗證檢查的大部分是做服務器端,但我使用(片斷並非所有的代碼):自定義jQuery的表單驗證

e.preventDefault(); 

     var error = false; 
     var name = $("input[name='name']").val(); 
     var email = $("input[name='email']").val(); 

     if(name.length == 0){ 
     var error = true; 
     var name = $("input[name='name']").addClass("error"); 
     }else{ 
     $("input[name='name']").removeClass("error"); 
     } 

     if(email.length == 0 || email.indexOf('@') == '-1'){ 
     var error = true; 
     var email = $("input[name='email']").addClass("error"); 
     }else{ 
     $("input[name='email']").removeClass("error"); 
     } 

但是如果我離開這兩個領域的空白只電子郵件字段將獲得附加的類 - 不僅如此,而且只要電子郵件存在表單提交 - 名稱字段爲什麼留空不被拾取?

+2

對於初學者來說,'==「-1''應該是'== -1' - 對數字-1測試,而不是串! – Utkanos

+0

另外,不需要在if/else條件中重新聲明變量。如果你想更新'error'的值,使用'error = true'而不是'var error = true'。如果你想添加類,使用'$(「input [name ='name']」)。addClass(「error」)'就足夠了,你不必將jQuery對象存儲在一個變量中。 – Terry

+0

欣賞指針,但既不解決問題發佈? – user4349555

回答

0

我會做另一個條件之後的電子郵件之一。 喜歡的東西:

if (email.length == 0 && name.length == 0) { 
    $("input[name='email']").addClass("error"); 
    $("input[name='name']").addClass("error"); 
}