2013-02-12 104 views
-2

我刚刚给了validate(errorElement,...)选项,我设置了规则,没有调用validate方法,或将它与任何事件关联,但jQuery自动验证,如何控制验证时间?为什么jQuery Validate插件在不调用validate()的情况下进行验证?

+1

请提供代码示例 – Curt 2013-02-12 10:27:37

+0

您是如何设置jQuery和验证的?没有看到你的代码,这个问题不能以任何合理的形式来回答。 – 2013-02-12 10:27:53

+0

$('form')。validate({errorelement:'span'}); $('input')。rules('add',{min:0}); – 2013-02-12 10:30:02

回答

7

您将需要提供更多关于您想要做什么的详细信息,但我可以回答您的问题,因为您已经撰写了该问题。

标题:为什么jquery验证没有调用验证?

.validate() is called once to initialize the plugin on the form。这不是一种按需触发验证的方法。一旦初始化,表单将根据内置于插件中的各种事件回调自动验证。更多详细信息如下...

OP:我刚才给选择到validate(errorElement,...),我设置 规则,而不调用validate方法,或将其与任何 关联事件,但jquery自动验证,如何控制它何时验证它 ?

您不需要将插件与任何事件关联,因为插件已经自动执行此操作。如果没有,这将是无用的。

When you call .validate(), you are initializing the plugin on the form。所以,是的,这意味着表单现在已准备就绪,并且它会自动执行在所有常见事件上触发的验证测试,例如submit,onkeyup,onfocusout,并选择按钮&复选框click。你为什么不想要那个?

要以编程方式进行验证测试,您可以拨打the built-in .valid() method这是非常喜欢的submit事件,它会触发整个窗体的验证测试和形式将显示任何错误。 .valid()也将返回布尔值truefalse,指示表单是否通过了验证测试。

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

如果无论出于何种原因需要完全“禁用”和“启用”验证,则不能直接执行此操作,因为没有内置方法从窗体中取消绑定插件。但是,您可以使用the built-in rules('remove') and rules('add') methods来模拟它。在任何领域没有任何规则,它只会表现得好像根本没有验证一样。但是,您仍然可以使用其他插件选项,如submitHandler callback,以防万一您使用ajax进行数据提交。

+0

谢谢,所以我不建议电子书无题“亲jquery”,它教这个错误的方式 – 2013-02-13 17:05:19

+0

@YounesCh,不客气。也许你可以编辑你的OP来解释更多关于本书试图教给你的内容。 – Sparky 2013-02-13 17:06:47

+0

它表示我们必须为配置调用一次验证,如果验证为 – 2013-02-13 17:50:30

相关问题