用Jquery比较两个密码

时间:2013-10-18 20:22:36

标签: 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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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>");
       }
    },
}

可能看起来有点矫枉过正,但随着表单变得越来越长,验证越来越复杂,维护速度越来越快,也越来越容易。