用Jquery比较两个密码

我正在尝试比较用户在尝试注册时输入的两个密码,但是只要密码等于确认密码的密码仍然会引发错误密码不匹配。 如果没有输入密码则会有两个阶段,然后出现错误,但第二阶段比较两个密码,错误总是正确并呈现给自己。

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

    在比较它们之间的密码时,您还必须使用.val()

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

    您可以稍微改进一下代码以使其更快。 您应该缓存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("
    • " + this.errors.join("
    • ") + "
    "); } }, }

    可能看起来有点矫枉过正,但随着表单变长和validation更复杂,它更快更容易维护。