使用jQueryvalidation确认密码

我试图使用jQueryvalidation插件来确认我的密码input。

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

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

如果不是,则两个字段都不应该被validation。

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

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

我想有这个可选的,以防某人只是想改变他们的电子邮件或用户名,并保留密码。

删除required: true规则。

演示: 小提琴

 jQuery('.validatedForm').validate({ rules : { password : { minlength : 5 }, password_confirm : { minlength : 5, equalTo : "#password" } } 

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

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

有关内置规则,请参阅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> 

请注意data-rule-*属性。

它的工作原理,如果id值和名称值是不同的:

 <input type="password" class="form-control"name="password" id="mainpassword"> password: { required: true, } , cpassword: {required: true, equalTo: '#mainpassword' }, 

我在Play Framework中实现它,对我来说,它的工作是这样的:

1)请注意,我在input标记中使用了data-rule-equalTo作为id inputPassword1。 在我的Modal中的userform代码部分:

 <div class="form-group"> <label for="pass1">@Messages("authentication.password")</label> <input class="form-control required" id="inputPassword1" placeholder="@Messages("authentication.password")" type="password" name="password" maxlength=10 minlength=5> </div> <div class="form-group"> <label for="pass2">@Messages("authentication.password2")</label> <input class="form-control required" data-rule-equalTo="#inputPassword1" id="inputPassword2" placeholder="@Messages("authentication.password")" type="password" name="password2"> </div> 

2)因为我在模态中使用validation器

 $(document).on("click", ".createUserModal", function () { $(this).find('#userform').validate({ rules: { firstName: "required", lastName: "required", nationalId: { required: true, digits:true }, email: { required: true, email: true }, optradio: "required", password :{ required: true, minlength: 5 }, password2: { required: true } }, highlight: function (element) { $(element).parent().addClass('error') }, unhighlight: function (element) { $(element).parent().removeClass('error') }, onsubmit: true }); }); 

希望它可以帮助别人:)。

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

一般来说,你不会像这样使用“id =”password“”。 所以,你可以使用'[name =“password”]而不是“#password”