我刚刚给出了validate(errorElement,...)的选项,并且我设置了规则,没有调用validate方法,或者将它与任何事件相关联,但jQuery自动验证,如何控制验证何时?< / p>
答案 0 :(得分:7)
您需要提供更多关于您要做的事情的详细信息,但是到目前为止我可以回答您的问题。
标题:为什么jquery在不调用validate的情况下验证?
.validate()
is called once to initialize the plugin on the form。它不是按需触发验证的方法。初始化后,表单将根据插件中内置的各种事件回调自动进行验证。更多细节如下......
OP :我刚刚给出了validate(errorElement,...)的选项,我设置了 规则,不调用验证方法,或将其与任何方法相关联 事件,但jquery自动验证,如何控制它 验证?
您不需要将插件与任何事件相关联,因为插件已经自动执行此操作。如果不这样做,那将毫无用处。
When you call .validate()
, you are initializing the plugin on the form。所以,是的,这意味着表单现已准备就绪,它会自动执行针对所有常见事件触发的验证测试,例如submit
,onkeyup
,onfocusout
以及选择,按钮和按钮。复选框click
。你为什么不想要那个?
要以编程方式执行验证测试,您可以调用the built-in .valid()
method,这与submit
事件非常相似,因为它会在整个表单上触发验证测试表单将显示任何错误。 .valid()
还会返回布尔值true
或false
,表明表单是否通过了验证测试。
如果您只需要在单个元素而不是整个表单上触发验证测试,则可以使用$('#myelement').valid()
。同样,显示任何消息并返回布尔值。
如果由于某种原因你需要完全“禁用”和“启用”验证,你不能直接执行此操作,因为没有内置方法可以从表单中取消绑定插件。但是,您可以使用the built-in rules('remove')
and rules('add')
methods进行模拟。没有任何字段的任何规则,它只会表现得好像根本没有验证。但是,您仍然可以使用其他插件选项,例如submitHandler
callback,以防您使用ajax进行数据提交。