使用jQuery Validate确认密码

ldr*_*cks 62 jquery jquery-validate

我正在尝试使用jQuery validate插件来确认我的密码输入.

但是,我不希望它成为必填字段.

只要用户想要更改密码,他们就需要确认密码.

如果不是,则不应验证这两个字段.

jQuery('.validatedForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 5
        },
        password_confirm: {
            required: true,
            minlength: 5,
            equalTo: "#password"
        }
    }
}); 
Run Code Online (Sandbox Code Playgroud)

这是完美的,但同样,这两个领域都是必需的.

我希望有这个可选项,以防有人想要更改例如他们的电子邮件或用户名并单独保留密码.

Aru*_*hny 129

删除required: true规则.

演示:小提琴

jQuery('.validatedForm').validate({
            rules : {
                password : {
                    minlength : 5
                },
                password_confirm : {
                    minlength : 5,
                    equalTo : "#password"
                }
            }
Run Code Online (Sandbox Code Playgroud)

  • 不起作用。那么即使两个字段都为空,它总是显示“请再次输入相同的值” (2认同)

Hal*_*zed 28

只是在这里快速编钟,希望能帮助别人...尤其是新版本(因为这是2岁)...

您也可以使用data-rule-*属性,而不是在JS中定义一些静态字段.您可以使用内置规则以及自定义规则.

有关内置规则,请参阅http://jqueryvalidation.org/documentation/#link-list-of-built-in-validation-methods.

例:

<p><label>Email: <input type="text" name="email" id="email" data-rule-email="true" required></label></p>
<p><label>Confirm Email: <input type="text" name="email" id="email_confirm" data-rule-email="true" data-rule-equalTo="#email" required></label></p>
Run Code Online (Sandbox Code Playgroud)

注意data-rule-*属性.

  • 这是比第一个更好、更简单的答案,我喜欢它,+1。 (2认同)
  • 您可以使用 data-msg-equalTo 更改默认消息 (2认同)

小智 5

如果id值和名称值不同,它可以工作:

<input type="password" class="form-control"name="password" id="mainpassword">
password: {     required: true,     } , 
cpassword: {required: true, equalTo: '#mainpassword' },
Run Code Online (Sandbox Code Playgroud)


小智 5

jQuery('.validatedForm').validate({
        rules : {
            password : {
                minlength : 5
            },
            password_confirm : {
                minlength : 5,
                equalTo : '[name="password"]'
            }
        }
Run Code Online (Sandbox Code Playgroud)

一般来说,你不会这样使用id="password"。因此,您可以使用[name="password"]代替"#password"