在新版 jQuery 验证插件 1.9 中默认忽略隐藏字段的验证。我将 CKEditor 用于 textarea 输入字段,它隐藏了该字段并将其替换为 iframe。该字段在那里,但对隐藏字段禁用了验证。使用验证插件版本 1.8.1 一切都按预期工作。
所以我的问题是如何使用 v1.9 验证插件启用对隐藏字段的验证。
此设置不起作用:
$.validator.setDefaults({ ignore: '' });
该插件的作者说你应该使用 “不带引号的方括号” ,[]
[]
http://bassistance.de/2011/10/07/release-validation- plugin-1-9-0/
发布:验证插件 1.9.0: “…另一个更改应该使带有隐藏元素的表单的设置更容易,这些现在默认被忽略(选项“忽略”现在默认为“隐藏”)。从理论上讲,这可能会破坏现有设置。在不太可能的情况下,您可以通过将忽略选项设置为“淸]”(不带引号的方括号)来修复它。
要更改所有表单的此设置:
$.validator.setDefaults({ ignore: [], // any other default options and/or rules });
(不需要.setDefaults()在document.ready函数内)
.setDefaults()
document.ready
或者对于一种特定的形式:
$(document).ready(function() { $('#myform').validate({ ignore: [], // any other options and/or rules }); });
编辑 :
有关如何在某些隐藏字段上启用验证但仍忽略其他字段的信息,请参阅此答案。
您可以使用:not()选择器:
:not()
ignore: ":hidden:not(.my_item)"
编辑 2 :
在留下 “这不起作用” 的评论之前,请记住,OP 只是询问jQuery Validate 插件,他的问题与 ASP.NET、MVC 或任何其他 Microsoft 框架如何改变这个插件的正常情况 无关 预期的行为。如果您使用的是 Microsoft 框架,则 jQuery Validate 插件的默认功能会被 Microsoft 的unobtrusive-validation插件覆盖。
unobtrusive-validation