我有一个使用jQueryValidate的简单表单:
$("#frmMain").validate();
留下空的电子邮件将导致显示验证并停止表单,密码可以奇怪地留空并且表单提交。
当密码为空时,我需要做哪些更改才能确保表单无法提交,就像电子邮件现在所做的那样:
<form action="Login" id="frmMain" method="post" name="frmMain" role="form">
<input class="input-validation-error form-control" data-msg-email="The Email field is not a valid e-mail address." data-msg-required="The Email field is required." data-rule-email="true" data-rule-required="true" id="Email" name="Email" type="email" />
<input autocomplete="off" class="input-validation-error form-control" data-val="true" data-val-length="The new password must be at least 8 characters long" data-val-length-max="15" data-val-length-min="8" data-val-required="Password is required" id="Password" name="Password" type="password" />
注意,我设置了验证器的默认值:
submitHandler: function (form) {
if ($(form).valid()) {
form.submit();
}
}
答案 0 :(得分:0)
这里的代码是多余的,多余的......
submitHandler: function (form) {
if ($(form).valid()) {
form.submit();
}
}
您不需要if form.valid()
,因为submitHandler
仅在有效表单上触发。 (您的有条件的if
永远不会是false
)。
您不需要form.submit()
,因为这是表单有效时的默认行为。 (form
操作将会触发)
没有留下任何内容......因此您根本不需要为此案例指定自定义submitHandler
。 (它可以完全像我在下面的jsFiddle中所做的那样被遗漏了)
引用OP :
“...密码可以奇怪地留空并且表单提交。当密码为空时,我需要进行哪些更改以确保表单不会提交”
如果没有指定强制要求填写字段的规则,那有什么奇怪的?如果您需要在密码为空时停止提交,则需要required
规则。只需将电子邮件字段中的属性与密码字段进行比较,您就会发现data-rule-required
是指定required
规则的位置...
data-rule-required="true"
将此属性添加到密码字段,现在必须填写该字段。