-2

我刚刚给了 validate (errorElement, ...) 选项,我设置了规则,没有调用 validate 方法,或者将它与任何事件关联,但是 jQuery 自动验证,如何控制它何时验证?

4

1 回答 1

7

您将需要提供更多关于您正在尝试做的事情的详细信息,但我可以回答您到目前为止所写的问题。

标题:为什么 jquery 验证而不调用验证?

.validate()被调用一次以初始化表单上的插件。它不是一种按需触发验证的方法。初始化后,表单将根据插件中内置的各种事件回调自动验证。更多详情如下...

OP:我刚刚为验证(errorElement,...)提供了选项,并且我设置了规则,没有调用验证方法,或者将其与任何事件相关联,但是 jquery 自动验证,如何控制它何时验证?

您不需要将插件与任何事件相关联,因为插件已经自动执行此操作。如果没有,那就太没用了。

当您调用时.validate(),您正在初始化表单上的插件。所以,是的,这意味着表单现在已经准备好了,它将自动对所有常见事件触发验证测试,例如submit, onkeyup,onfocusout和 select, button & checkbox click。你为什么不想要那个?

要以编程方式执行验证测试,您可以调用内置.valid()方法,该方法非常类似于submit事件,因为它将触发整个表单的验证测试,并且表单将显示任何错误。 .valid()还将返回一个布尔值truefalse指示表单是否通过了验证测试。

如果您只需要在单个元素而不是整个表单上触发验证测试,您可以使用$('#myelement').valid(). 同样,显示任何消息并返回一个布尔值。

如果出于某种原因您需要完全“禁用”和“启用”验证,则不能直接执行此操作,因为没有用于从表单取消绑定插件的内置方法。但是,您可以使用内置的rules('remove')rules('add')方法来模拟它。如果对任何字段没有任何规则,它只会表现得好像根本没有验证一样。但是,您仍然可以使用其他插件选项,例如submitHandler回调,以防万一您使用 ajax 进行数据提交。

于 2013-02-13T16:26:37.900 回答