16

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

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

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

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

我查看了代码,只能看到它在调用validator.resetForm(). 这部分代码工作正常。

4

1 回答 1

50
  • 您不能为表单或单个字段元素打开/关闭 jQuery Validate 插件。对此没有任何方法或解决方法。

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

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

将字段动态设置为required

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

动态设置字段为not 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/

于 2013-09-25T22:58:14.067 回答