2013-10-18 80 views
0

我試圖比較用戶在嘗試註冊時輸入的兩個密碼,但每當密碼與確認的密碼相同時仍然​​會引發錯誤密碼不匹配。 有兩個階段,如果沒有輸入密碼,那麼出現的錯誤工作正常,但第二階段比較兩個密碼的錯誤總是正確的,並呈現它自己。將兩個密碼與Jquery比較

if ($('#password').val() == "") { 
    $('.error').append("<li> Please enter a pasword </li>"); 
    error = true; 
    } else if ($('#password') !== $('#password1')) { 
    $('.error').append("<li> You password does not match the confirmed password </li>"); 
    error = true; 
    } 

回答

2

您還可以使用.val()比較密碼時,它們之間:

else if ($('#password').val() !== $('#password1').val()) 
0

你可以提高你的代碼位,使其更快。您應該緩存dom查詢並插入一次錯誤文本。是否存在錯誤取決於錯誤數組的空/非空。

var FormHandler = { 
    errors: [], 
    validate: function(){/*...function to run all validations */} 
    checkPassword: function(){ 
     var pass = $('#password').val(); 
     if (!pass || pass === "") { 
      this.errors.push("Please enter a pasword"); 
     } else if (pass !== $('#password1').val()) { 
      this.errors.push("You password does not match the confirmed password"); 
     } 
     this.printErrors(); // or continue to next form validation 
    }, 

    //...more validation functions... 

    printErrors: function(){ 
     if(this.errors.length){ 
      $('.error').html("<ul><li>" + this.errors.join("</li><li>") + "</li></ul>"); 
     } 
    }, 
} 

似乎有點小題大做,但它更快,更易於維護的表單變得更長和驗證更加複雜。