jQuery插件验证:重新验证为键入/鼠标焦点

时间:2012-06-07 19:17:14

标签: jquery html forms jquery-plugins jquery-validate

我有一个基于jQuery文档验证演示的表单:http://jsfiddle.net/ABbDS/1/。单击“提交”或“按Enter”会对其进行验证。

如何使标签 / 更改鼠标焦点 / 输入也验证? (所以他们马上知道电子邮件是

它基于:http://jquery.bassistance.de/validate/demo/milk/(执行此操作)和http://docs.jquery.com/Plugins/Validation/

单击下一个元素或点击标签时,我没有验证。 我发现的答案没有使用validate插件。

编辑:这是正确答案吗? :https://stackoverflow.com/a/9381803/341744 $(this).valid()调用validate()的函数吗?

2 个答案:

答案 0 :(得分:3)

关于onfocusout和onkeyup的documentation on the jquery site有点误导。它声明onfocusout和onkeyup是布尔值,这会让你相信你可以将它们的值设置为true或false。错误!您应该只将它们设置为false。如果将其值设置为true,则会出现此错误

  

未捕获TypeError:对象true没有方法'call'

这是因为默认的onfocusout和onkeyup是函数而不是布尔值。如果将值设置为false,则不会调用该函数,但如果设置为true,则会出现javascript错误。这种类型的编程很难像我这样习惯于强类型的程序员习惯,但非常聪明。

没有理由将onfocusout设置为true,因为默认行为是在失去焦点时验证,所以只需在代码中删除这两行

// remove these lines
// onfocusout:true,  
// onkeyup: true

答案 1 :(得分:0)

您可以将quite a few events添加到可能对您有帮助的验证程序选项中。

示例:

onkeyup

  

验证keyup上的元素。只要该字段未标记为   无效,没有任何反应。否则,将在每个密钥上检查所有规则   事件。

$(".selector").validate({
   onkeyup: true
});