为一个输入打开/关闭Jqueryvalidation

我使用相同的表单来添加和编辑值。 在添加项目期间,我希望它强制对服务器执行名称检查。 但是,在编辑模式期间,我希望它不进行validation,因为名称可能不会更改。 我试图根据下面的文档链接将validation器中的ignore属性设置为“ignore”类。 我在名称输入中使用相同的类名,但这不起作用。 它一直在validation服务器。 有什么想法吗?

我正在使用的代码的URL,主要是validationfunction。 http://jqueryvalidation.org/validate/

根据ignore属性的文档,它指出:

validation时要忽略的元素,只是将它们过滤掉。 使用了jQuery的not-method,因此not()接受的所有内容都可以作为此选项传递。 始终忽略提交和重置类型的输入,因此禁用的元素也是如此。

我查看了代码,只能看到它在调用validator.resetForm()期间影响清理错误。 这部分代码可以正常工作。

  • 您无法为表单或单个字段元素打开/关闭jQuery Validate插件。 没有方法或解决方法。

  • ignore选项在.validate()调用中设置,这是插件的“一次性”初始化,因此您无法动态更改或切换选项。 始终忽略对.validate()任何后续调用。

在使用.rules()初始化插件之后,您唯一的解决方案是使用.rules()方法为各个字段元素动态'add''remove'规则。 不要被'add'术语所迷惑……此方法还允许您覆盖现有规则,因此您不必首先'remove'它们。

要根据required动态设置字段:

 $('#myfield').rules('add', { required: true // set a new rule }); 

要将字段动态设置为required

 $('#myfield').rules('add', { required: false // overwrite an existing rule }); 

要么

 $('#myfield').rules('remove', 'required'); // removes only specified rule(s) 

要么

 $('#myfield').rules('remove'); // removes all rules for this field 

文档 : http : //jqueryvalidation.org/rules/