Jquery Validation插件 – 您可以从选项中启用“急切”validation吗?

我正在项目中使用Jquery Validation插件。

默认情况下,插件会在单击提交按钮时validation输入。 该行为是“懒惰的”,以便对用户不显眼。 如果发现错误,则validation变为“急切”并在用户纠正违规条目时validation输入。

有没有办法通过一个选项覆盖最初的“懒惰”行为? 我在文档中找不到任何解决方案。

例:

如果您查看此演示 ,您会注意到用户可以浏览表单,留下空文本框,当用户点击提交时,这些文本框将无法通过validation。 如果用户最初在电子邮件文本框中输入了无效的电子邮件地址,则在单击提交按钮之前不会突出显示该地址。 之后,在每次按键和模糊事件时validation输入。 这就是我想从一开始就激活的东西。

我理解插件创建者的设计选择,但我需要不同的行为。

实际上,我得到的默认行为是关注focusoutfocusout事件的validation,我在插件代码中看到这些默认行为。 我必须在插件配置中禁用它们才能在提交时获得validation。 也许你应该发布你的一些代码……我不认为情况是完全清楚的。

感谢混乱对这个问题的指导:

要在jqueryvalidation插件上启用急切validation,请将以下选项添加到validate函数:

  $('#myform').validate({ onfocusout: function(element) { $(element).valid(); } }); 

我想补充罗伯特的答案,你可以使用setDefaults()在默认设置中执行此操作,因此它不依赖于实时validation方法的实际实例(通常不会通过不显眼的validation公开)。

只需使用一个函数覆盖onfocusout属性,该函数始终通过调用valid()方法来计算模糊元素:

 // enable eager evaluation $.validator.setDefaults({ onfocusout: function (element) { $(element).valid(); } }) 

热切评估的演示
(标签出后需要显示)

 // enable eager evaluation $.validator.setDefaults({ onfocusout: function (element) { $(element).valid(); } }); $("form").validate(); 
 input.error { border-color: red }