我有一个简单的表单,我想用validate()插件验证。出于一些奇怪的原因,它只是部分工作。 如果两个输入都为空,则验证有效,但如果只有一个输入有效,则验证不再起作用并按原样提交表单。
这里是html
<form action="ajax/process.php" enctype="multipart/form-data" method="post" id="newAccount3" class="validate">
<input type="hidden" name="postOp" value="account-creation-password">
<input type="password" id="usrPass" name="usrPass" class="form-control mt-3" required autofocus data-msg="Trebuie sa introduci o parola">
<input type="password" id="usrPassConfirm" name="usrPassConfirm" class="form-control mt-3" required data-msg="Parolele trebuie sa se potriveasca"><br>
<button type="submit" class="btn btn-success alert-success px-5 px-sm-3 submitBtn">Continua</button>
</form><hr>
和JS
$('.validate').validate({
ignore: ":hidden",
rules: {
usrPass: {
required: true,
minlenght: 6
},
usrPassConfirm: {
required: true,
minlenght: 6,
equalTo: "#usrPass"
}
},
submitHandler: function(form){
var target = form.id;
$.post('ajax/process.php',$('#'+target).serialize(),function(response){
if(response.msg === 'OK-next'){
location.reload();
}
},'json');
return false;
}
});
这是fiddle
任何想法?
顺便说一下,如果我从jS中删除规则,它正在运行,但我需要密码才能匹配。
有一个link
要检查它,它不起作用。只需输入一个虚假的电子邮件地址,下一步就会看到问题。
答案 0 :(得分:1)
我试过你的小提琴,看起来你正在加载jQuery 1.9.1。我已将其更改为jQuery 3.2.1并且一切正常。
$('.validate').validate({
ignore: ":hidden",
rules: {
usrPass: {
required: true,
minlength: 6
},
usrPassConfirm: {
required: true,
minlength: 6,
equalTo: "#usrPass"
}
},
submitHandler: function(form){
var target = form.id;
$.post('ajax/process.php',$('#'+target).serialize(),function(response){
if(response.msg === 'OK-next'){
location.reload();
}
},'json');
return false;
}
});