2017-04-20 53 views
0

什麼可能是錯誤的我試圖驗證輸入字段名稱,company_name,密碼,當我在密碼字段它說密碼不應該是空的,但我已經輸入密碼輸入字段中的一些字符。javascript驗證沒有閱讀我的其他條件,如果否則如果

它似乎並沒有讀取驗證爲password.lengthpassword != confirm_password條件對我否則,如果

這裏是我的代碼

$('#button-parent a').bind('click',function(e){ 
     var $this = $(this); 
     var prev = current; 
     var name = document.getElementById('name').value; 
     var company_name = document.getElementById('company_name').value; 
     var password = document.getElementById('password').value; 
     var confirm_password = document.getElementById('confirm_password').value; 
     var email = document.getElementById('email').value; 


     if(name == null || name == "") { 
       alert('name is required'); 
       return false; 

     } else if(name.length < 5) { 
       alert('name must be atleast 6 characters'); 
       return false; 

     } else if(company_name == null || company_name == ""){ 
       alert('company name is required'); 
       return false; 

     } else if (password == null || password == ""){ 
       alert('password field should not be empty'); 
       return false; 

     } else if (password.length < 8) { 
       alert('password must be atleast 8 characters'); 
       return false; 

     } else if (password != confirm_password) { 
       alert('Password do not match'); 
       return false; 
     } 
+0

如果你想檢查空密碼檢查你已經擁有它的長度 – guradio

+0

另外,所有這些'null'檢查都是不必要的,因爲輸入的'.value'永遠不會是'null'。 – nnnnnn

+0

嗨guradio我已經刪除條件,如果(密碼== null ||密碼==「」),我輸入密碼字段多於8個字符和警報密碼必須是至少8個字符,它不應該顯示正確的警報? – Lestah

回答

0

如果您使用的是jQuery,爲什麼不從$()選擇器獲取值?

$(function() { 
    $('#button-parent a').bind('click', function(e) { 
     var $this = $(this); 
     var prev = current; 
     var name = $('#name').val(); 
     var company_name = $('#company_name').val(); 
     var password = $('#password').val(); 
     var confirm_password = $('#confirm_password').val(); 
     var email = $('#email').val(); 

     var errorMsg = ''; 
     if (name == null || name == "") { 
      errorMsg += 'name is required\n'; 
     } 
     if (name.length < 5) { 
      errorMsg += 'name must be atleast 6 characters\n'; 
     } 
     if (company_name == null || company_name == "") { 
      errorMsg += 'company name is required\n'; 

     } 
     if (password == null || password == "") { 
      errorMsg += 'password field should not be empty\n'; 

     } 
     if (password.length < 8) { 
      errorMsg += 'password must be atleast 8 characters\n'; 

     } 
     if (password != confirm_password) { 
      errorMsg += 'Password do not match'; 
     } 
     if (errorMsg != '') { 
      alert(errorMsg); 
      return false; 
     } 
    }); 
}); 

這樣就可以一次顯示錶單中的所有錯誤和用戶不會被激怒的。

+0

我使用getElementByid,因爲jquery選擇器沒有得到值的名稱和公司名稱似乎確定,但當它涉及到密碼字段警報彈出我輸入morethan 8個字符,並沒有錯誤,以及可能是錯誤的? – Lestah

+0

好吧,我認爲你不是在裏面document.ready ...看我編輯的代碼你必須使用$(function(){})內的jQuery從你的元素 – progrAmmar

+0

得到正確的結果之前它工作正常我不知道發生了什麼..通過我試圖將我的代碼替換爲您的編輯代碼的方式仍在工作 – Lestah

0

你可以嘗試,因爲你是使用下面的代碼行,而不是使用jQuery。

var password = $('#password').val(); 

爲了看到一個快速檢查,如果這條線的工作,你可以輸入和開發工具的控制檯部分運行此命令。如果它有效,你應該看到輸入值。