我使用相同的表单来添加和编辑值。在添加项目期间,我希望它强制对服务器进行名称检查,它确实这样做了。但是,在编辑模式下,我希望它不验证,因为名称可能不会更改。我尝试根据下面的文档链接将验证器中的忽略属性设置为“忽略”类。我在名称输入中使用相同的类名,但这不起作用。它不断针对服务器进行验证。有什么想法吗?
我正在使用的代码的 URL,主要是验证函数。 http://jqueryvalidation.org/validate/
根据忽略属性的文档,它指出:
验证时要忽略的元素,只需将其过滤掉即可。使用 jQuery 的 not 方法,因此 not() 接受的所有内容都可以作为此选项传递。提交和重置类型的输入总是被忽略,禁用的元素也是如此。
我查看了代码,只能看到它影响了调用 validator.resetForm()
期间的错误清理。 。这部分代码工作正常。
最佳答案
您无法为表单或单个字段元素打开/关闭 jQuery Validate 插件。没有任何方法或解决方法可以解决此问题。
ignore
选项设置在.validate()
内调用,这是插件的“一次性”初始化,因此您无法动态更改或切换选项。任何后续调用.validate()
总是被忽略。
使用 .validate()
初始化插件后,您唯一的解决方案是使用 .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
关于jquery - 打开/关闭一个输入的 Jquery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016053/