我正在尝试使用jQuery validate插件来确认我的密码输入。
但是,我不希望它成为必填字段。
如果用户想要更改密码,他们需要确认密码。
如果没有,则不应验证这两个字段。
jQuery('.validatedForm').validate({
rules: {
password: {
required: true,
minlength: 5
},
password_confirm: {
required: true,
minlength: 5,
equalTo: "#password"
}
}
});
这很有效,但同样需要两个字段。
我希望这个可选,以防有人只想更改他们的电子邮件或用户名并保留密码。
答案 0 :(得分:126)
删除required: true
规则。
演示:Fiddle
jQuery('.validatedForm').validate({
rules : {
password : {
minlength : 5
},
password_confirm : {
minlength : 5,
equalTo : "#password"
}
}
答案 1 :(得分:22)
这里只是一个快速的钟声,希望能帮助别人...尤其是新版本(因为这是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>
请注意data-rule-*
属性。
答案 2 :(得分:5)
如果id值和名称值不同,则可以使用:
<input type="password" class="form-control"name="password" id="mainpassword">
password: { required: true, } ,
cpassword: {required: true, equalTo: '#mainpassword' },
答案 3 :(得分:2)
我在Play Framework中实现它,对我来说它的工作原理如下:
1)请注意,我在id inputPassword1的输入标记中使用了data-rule-equalTo。 我的模态中的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)因为我在模态中使用了验证器
$(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
});
});
希望有人帮助:)。
答案 4 :(得分:1)
jQuery('.validatedForm').validate({
rules : {
password : {
minlength : 5
},
password_confirm : {
minlength : 5,
equalTo : '[name="password"]'
}
}
一般情况下,您不会像这样使用id="password"
。
因此,您可以使用[name="password"]
代替"#password"
答案 5 :(得分:1)
<script>
$(document).ready(function(){
});
function login() {
var password = $("#psw").val()
var password1 = $("#psw1").val()
var pswlen = password.length;
if (pswlen < 8) {
alert('minmum 8 characters needed')
}
else {
if (password == password1) {
alert('continue');
window.location.replace("http://stackoverflow.com");
}
else {
alert('failed');
}
}
}
</script>