使用jquery validate插件,我想仅在调用元素的blur事件时显示/隐藏错误,不想在键入时显示错误消息。为了解决这个问题,我尝试了
$('#form').validate({
onfocusout: true,
onkeyup: false
});
但是一旦我点击任何元素外面就会抛出错误
Uncaught TypeError: Object #<error> has no method 'call'
答案 0 :(得分:4)
其onfocusout
而非onfoucusout
,请更改为:
$('#form').validate({
onfocusout: function(element) { $(element).valid(); },
onkeyup: function(element) { $(element).valid(); }
});
答案 1 :(得分:1)
正如Sudhir已经指出的那样,你拼错了onfocusout
选项。
此外,此插件中的onfocusout
和onkeyup
选项已默认启用 。
你只有两个选择......
1)如果您要停用onfocusout
或onkeyup
,请将其设为false
...
$('#form').validate({
onfocusout: false, // disable validation on blur
onkeyup: false // disable validation on key-up
});
2)如果您想修改onfocusout
或onkeyup
的默认行为,请将它们设置为自定义函数...
$('#form').validate({
onfocusout: function(element, event) {
// your custom callback function for blur event
},
onkeyup: function(element, event) {
// your custom callback function for key-up event
}
});
否则,如果您只是想要onfocusout
或onkeyup
选项的默认行为,完全取消.validate()
来电。 As per documentation,将这些设置为true
“不是有效值”并会破坏插件。
$('#form').validate({
// onfocusout: true, // <- remove this line, true value is not valid
// onkeyup: true // <- remove this line, true value is not valid
});
<强>文档强>
onfocusout
类型:布尔值或函数()
验证模糊上的元素(复选框/单选按钮除外)。如果未输入任何内容,则跳过所有规则,除非该字段为 已被标记为无效。设置为一个功能来自己决定 何时运行验证。 布尔值true不是有效值。
onkeyup
类型:布尔值或函数()
验证密钥上的元素。只要该字段未标记为无效,就不会发生任何事情。否则,将在每个密钥上检查所有规则 事件。设置为false以禁用。设置为一个函数来决定 你自己何时运行验证。 布尔值true无效 值强>