2012-06-07 55 views
0

我有一个基于jQuery文档验证演示的表单:http://jsfiddle.net/ABbDS/1/。点击提交或按回车确认。jQuery插件验证:重新验证为键入/鼠标焦点

如何使标签/改变鼠标焦点/打字也验证? (所以他们马上知道邮件是

它是基于关闭的:http://jquery.bassistance.de/validate/demo/milk/(它做到这一点),并http://docs.jquery.com/Plugins/Validation/

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

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

+0

是的,我相信你可以从得到你的答案文章 – williamcarswell

+0

你没有正确使用jsFiddle。你已经包含jQuery两次。资源被添加到左侧,而不是在HTML面板中。请参阅:http://jsfiddle.net/ABbDS/6/ – Sparky

回答

0

quite a few events您可以添加到可以帮助您的验证器选项。

实施例:

的onkeyup

Validate elements on keyup. As long as the field is not marked as invalid, nothing happens. Otherwise, all rules are checked on each key up event.

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

它似乎不像引用那样工作。在使字段无效并显示消息之后,它仍然不会在按键上更新。直到我点击提交或按回车。 - 我如何将你的代码和我的变量'validator'整合在一起? – ninMonkey

3

documentation on the jquery site关于onfocusout在和的onkeyup有些误导。它指出onfocusout和onkeyup是布尔值,这会导致您相信您可以将它们的值设置为true或false。错误!你应该只将它们设置为false。如果其值设置为true,那么你得到这个错误

Uncaught TypeError: Object true has no method 'call'

这是因为默认onfocusout在和的onkeyup的功能不是布尔值。如果你设置这个值为false,那么这个函数就不会被调用,但是如果设置为true,那么你会得到一个javascript错误。这种类型的编程对于像我这样的程序员来说很难用来强壮的打字习惯,但相当聪明。

没有理由设置onfocusout在是真实的默认行为是验证在失去焦点,所以就删除你的这两行代码

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