1

使用 jquery validate 插件,我只想在调用元素的 blur 事件时显示/隐藏错误,不想在您键入时显示错误消息。为了解决这个问题,我尝试了

$('#form').validate({
    onfocusout: true,
    onkeyup: false
});

但是一旦我在任何元素之外单击它就会引发错误

Uncaught TypeError: Object #<error> has no method 'call' 
4

2 回答 2

4

onfocusout不是,改为onfoucusout

$('#form').validate({
    onfocusout: function(element) { $(element).valid(); },
    onkeyup: function(element) { $(element).valid(); }
});
于 2013-10-07T11:14:45.667 回答
1

正如 Sudhir 已经指出的那样,您拼错了该onfocusout选项。

此外,默认情况下,此插件中已启用onfocusout和选项。onkeyup

你只有两个选择...

1)如果你想禁用onfocusoutor onkeyup,你可以将它们设置为false...

$('#form').validate({
    onfocusout: false, // disable validation on blur
    onkeyup: false     // disable validation on key-up
});

2)如果您想修改onfocusoutor的默认行为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否则,如果您只是想要oronkeyup选项的默认行为,请将它们完全排除.validate()调用之外。 根据文档,将这些设置为true “不是有效值”并且会破坏插件。

$('#form').validate({
    // onfocusout: true, // <- remove this line, true value is not valid
    // onkeyup: true     // <- remove this line, true value is not valid
});

文档:

onfocusout
类型:Boolean 或 Function(
) 在 blur 上验证元素(复选框/单选按钮除外)。如果未输入任何内容,则跳过所有规则,除非该字段已被标记为无效。设置为 Function 以自行决定何时运行验证。 布尔值 true 不是有效值


onkeyup
类型:Boolean 或 Function()
验证 keyup 上的元素。只要该字段未被标记为无效,就不会发生任何事情。否则,将检查每个按键事件的所有规则。设置为 false 以禁用。设置为 Function 以自行决定何时运行验证。 布尔值 true 不是有效值

于 2013-10-07T16:13:28.783 回答