jquery - 打开/关闭一个输入的 Jquery 验证

标签 jquery jquery-validate

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

我正在使用的代码的 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

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

关于jquery - 打开/关闭一个输入的 Jquery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016053/

相关文章:

c# - 使用带有 jquery.validate.unobtrusive.js 的 asp.net mvc3 来验证表单和 changebutton

javascript - 如何使用 Sweet Alert 进行确认?

javascript - jQuery 循环错误 : Cannot read property 'cycleW' of undefined

javascript - FadeIn/FadeOut slider 不淡出 (JQuery/Javascript)

javascript - bxSlider:如何防止bxSlider转到下一张幻灯片?

asp.net-mvc-3 - ASP.NET MVC 3 Unobtrusive Jquery Validate 不多次显示自定义错误消息

jquery - 从 Soundcloud 上的 iframe 中删除元素

javascript - 如何在用户关闭窗口或选项卡时重定向

javascript - 如何验证和包装输入的错误消息?

jquery - 如何在 jQuery 验证插件中的 valueNotEquals 规则上添加 "depends"条件?