我正在将这个jQuery Validation Plugin(jquery-validate)与Bootstrap结合使用,我已经用它创建了5个表格&带着很多痛苦。
我现在有JSFiddle,但我的密码字段表现得很奇怪......
如您所见,我为密码设置了required
规则。如果我删除浏览器中的所有项目符号并转到下一个字段,则保持不变,如果已经标记正确,则保持正确,如果没有标记,则保持未标记。 未标记错误,错误消息未显示!
我只能通过首先在密码字段上生成required
错误并显示然后删除所有字符来显示我的minlength
规则错误消息或单击提交按钮(仅当所有字段均未处于错误状态时才可用)。
经过大量检查后,我找到了onfocusout
选项。这可以是true
或false
,默认设置为true
如网站所述,
[It]在模糊上验证[s]元素(复选框/单选按钮除外)。如果未输入任何内容,则会跳过所有规则,除非该字段已标记为无效。
我想,这肯定是原因。但经过大量的谷歌搜索,结果发现没有其他人有这个问题(至少,由于onfocusout
规则)。一篇帖子确实提到“required
规则是一个例外”(对onfocusout
规则?)。
底线 :我无法使required
规则错误生效,但提交或首次生成时出现异常minlength
错误消息。 然后,它确实出现了。
结论 :错误可以产生,但不能在blur
上产生。
问题 :如何解决这个问题?
我的密码输入字段
<input type="password" class="form-control" id="passw" name="passw" value="nochange" maxlength="20" required="required" placeholder="123456789" />
我的密码规则
passw: {
required: true,
minlength: 5,
maxlength: 20
},
我在发出错误时添加了console.log
条消息 - 甚至没有调用。我验证了我的代码和HTML,对所有内容进行了三重检查,但我仍然无法找到错误...
答案 0 :(得分:2)
引用OP:
“我无法获得所需的规则错误,但提交或首次生成minlength错误消息时会出现异常。然后,它会显示出来....我验证了我的代码和HTML,三重 - 检查了一切,但我仍然找不到错误“
这不是错误。这是默认行为。来自文档:“...它专为不显眼的用户体验而设计,尽可能少地使用不必要的错误消息让用户烦恼”
引用OP:
“经过大量检查后,我找到了
onfocusout
选项。这可以是true
或false
,默认设置为true正如网站所述”
不完全。默认情况下,onfocusout
有效;在不破坏插件的情况下,您无法将其设置为true
。您只能将其设置为false
(禁用它)或者您可以使用自己的功能覆盖它。
修改onfocuout
选项,以便在离开现场后立即触发所有验证。
$('#yourform').validate({
// your rules & options,
onfocusout: function (element, event) {
this.element(element);
}
});