0

我正在尝试比较用户在尝试注册时输入的两个密码,但只要密码等于已确认密码的密码,仍然会抛出错误密码不匹配。如果没有输入密码,则有两个阶段,然后会出现一个可以正常工作的错误,但是在第二阶段比较两个密码时,错误总是正确的并呈现出来。

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;
    }
4

2 回答 2

2

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

else if ($('#password').val() !== $('#password1').val())
于 2013-10-18T20:23:18.520 回答
0

您可以稍微改进一下代码以使其更快。您应该缓存 dom 查询并插入一次错误文本。是否有错误由errors数组的空/非空决定。

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>");
       }
    },
}

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

于 2013-10-18T20:43:31.033 回答