如果电子邮件无效,密码不符合最低要求或密码和确认密码字段不匹配,我打算通过打印邮件来验证我的表单。
要验证插件是否正常工作,我只测试电子邮件的有效性。在提交表单之前,验证器似乎工作了一秒钟,无论表单是否有效,我似乎无法弄清楚原因。
此外,该电子邮件无效'消息未打印出来。
我一直在努力想出这个问题已经有一段时间了,我很欣赏任何建议。
提前致谢!
JavaScript的:
$('#signUpForm').validate({ // initialize the plugin
errorPlacement: function(error, element) {},
rules: {
email: {
required: true,
email: true
}
}
});
$('#signUpForm').submit(function(e){
e.preventDefault();
if($(this).valid()){
$(this).submit();
}else{
return false;
}
});
形式:
<form id="signUpForm" method="post" action="signup.php">
<input id="signUpEmail" name="email" class="form-control">
<input id="signUpPassword" name="password" class="form-control" type="password">
<input id="confirmPassword" name="confirmPassword" class="form-control" type="password">
</form>
答案 0 :(得分:0)
这个配置都错了......
$('#signUpForm').validate({ // initialize the plugin
....
});
$('#signUpForm').submit(function(e){
....
});
您的.submit()
处理程序完全是冗余的,完全干扰了jQuery Validate插件的正确操作,该插件会自动捕获按钮click
并阻止submit
事件。
换句话说,.submit()
处理程序中的代码在功能上与插件已为您执行的操作完全相同。你不需要它,它会破坏验证。
您的errorPlacment
回调功能为空,以便停止显示所有错误消息...
errorPlacement: function(error, element) {},
它应该看起来像这样......
$('#signUpForm').validate({ // initialize the plugin
rules: {
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 8,
maxlength: 12
},
confirmPassword: {
equalTo: '#signUpPassword'
}
}
});
DEMO:http://jsfiddle.net/2t7dbuuf/
请参阅the documentation和SO Tag Wiki page了解正确用法。