You*_* Ch -2 jquery jquery-validate
我只是给了validate(errorElement,...)的选项,我设置了规则,没有调用validate方法,或者将它与任何事件相关联,但是jQuery自动验证,如何控制它何时验证?
你需要提供更多关于你要做什么的详细信息,但是到目前为止我可以回答你的问题.
标题:为什么jquery在不调用validate的情况下验证?
.validate()被调用一次来初始化表单上的插件.它不是按需触发验证的方法.初始化后,表单将根据插件中内置的各种事件回调自动进行验证.更多细节如下......
OP:我刚给了validate(errorElement,...)的选项,我设置了规则,没有调用validate方法,或者将它与任何事件相关联,但jquery自动验证,如何控制验证何时?
您不需要将插件与任何事件相关联,因为插件已经自动执行此操作.如果不这样做,那将毫无用处.
当您致电时.validate(),您正在初始化表单上的插件.所以,是的,这意味着该表格已经准备好,它会自动触发做在所有常见的事件,如验证测试submit,onkeyup,onfocusout,和选择,按钮和复选框click.你为什么不想要那个?
要以编程方式执行验证测试,您可以调用内置.valid()方法,该方法非常类似于submit事件,因为它将触发整个表单上的验证测试,表单将显示任何错误. .valid()还将返回一个布尔值true或false指示表单是否通过了验证测试.
如果您需要仅针对单个元素而不是整个表单触发验证测试,则可以使用$('#myelement').valid().同样,显示任何消息并返回布尔值.
如果由于某种原因你需要完全"禁用"和"启用"验证,你不能直接这样做,因为没有内置的方法从表单中解封插件.但是,您可以使用内置rules('remove')和rules('add')方法来模拟它.没有任何字段的任何规则,它只会表现得好像根本没有验证.但是,您仍然可以使用其他插件选项,例如submitHandler回调,以防您使用ajax进行数据提交.