Jquery Validation插件 - 您可以从选项中启用"急切"验证吗?

Rob*_*ean 10 jquery jquery-validate

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

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

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

例:

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

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

Rob*_*ean 15

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

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

 $('#myform').validate({
    onfocusout: function(element) {
        $(element).valid();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 不知道为什么,这对我来说不起作用.无论我在validate({...})的选项中定义什么,它似乎都没有被触发. (2认同)

cha*_*aos 6

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

  • 我认为你可以通过在你的validate()设置调用中添加onfocusout:function(){$(this).valid()}来强制你想要的行为. (3认同)
  • 谢谢!这似乎可以解决这个问题:$('#myform').validate({onfocusout:function(element){$(element).valid();}}; (2认同)