为一个输入打开/关闭Jquery验证

Joe*_*Joe 15 jquery jquery-validate

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

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

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

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

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

Spa*_*rky 44

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

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

初始化与插件后.validate(),你唯一的解决办法是使用.rules()方法动态'add''remove'规则,单项域元素.不要被'add'术语所迷惑......这种方法还允许您覆盖现有规则,因此您不必'remove'首先使用它们.

要将字段动态设置为required:

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

动态设置字段不是 required:

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

要么

$('#myfield').rules('remove', 'required');  // removes only specified rule(s)
Run Code Online (Sandbox Code Playgroud)

要么

$('#myfield').rules('remove');  // removes all rules for this field
Run Code Online (Sandbox Code Playgroud)

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

  • 这是互联网上最好的答案!我很长时间都在寻找这个.效果很好. (2认同)