在新版本的jQuery验证插件1.9中默认忽略隐藏字段的验证。我使用CKEditor文本区域输入字段,它隐藏字段,并将其替换为iframe。字段在那里,但是对隐藏字段禁用验证。在验证插件1.8.1版中,一切都能正常工作。
所以我的问题是如何启用验证隐藏字段与v1.9验证插件。
此设置无效:
$.validator.setDefaults({ ignore: '' });
在新版本的jQuery验证插件1.9中默认忽略隐藏字段的验证。我使用CKEditor文本区域输入字段,它隐藏字段,并将其替换为iframe。字段在那里,但是对隐藏字段禁用验证。在验证插件1.8.1版中,一切都能正常工作。
所以我的问题是如何启用验证隐藏字段与v1.9验证插件。
此设置无效:
$.validator.setDefaults({ ignore: '' });
当前回答
一定要把
$.validator.setDefaults({ ignore: '' });
不在$(document).ready中
其他回答
只需在jquery验证文件中找到文本ignore: ":hidden"并注释它。 注释后,它将永远不会丢失任何隐藏的元素来验证…
谢谢
插件的作者说你应该使用“不带引号的方括号”,[]
http://bassistance.de/2011/10/07/release-validation-plugin-1-9-0/
版本:验证插件1.9.0: "...另一个更改应该使表单的设置具有隐藏元素 更简单的是,现在默认情况下忽略这些(选项“ignore”有 ":hidden "现在为默认值)。理论上,这可能会破坏现有的 设置。在不太可能发生的情况下,你可以通过 将忽略选项设置为“[]”(方括号中没有 引号)。”
为所有表单更改此设置:
$.validator.setDefaults({
ignore: [],
// any other default options and/or rules
});
(并不要求在文档中包含. setdefaults()。准备好函数)
一种特定形式的OR:
$(document).ready(function() {
$('#myform').validate({
ignore: [],
// any other options and/or rules
});
});
编辑:
关于如何在某些隐藏字段上启用验证,但仍然忽略其他字段,请参阅此回答。
编辑2:
在留下“这不起作用”的评论之前,请记住,OP只是在询问jQuery验证插件,他的问题与如何使用ASP无关。NET、MVC或任何其他微软框架都可以改变这个插件的正常预期行为。如果你使用的是微软框架,jQuery Validate插件的默认功能会被微软的unobtrusie -validation插件覆盖。
如果你还在纠结于不显眼的验证插件,那么请参考这个答案:https://stackoverflow.com/a/11053251/594235
验证在表单提交上为我工作,但它没有对所选选择列表的输入进行响应性事件驱动验证。
为了解决这个问题,我添加了以下内容来手动触发库添加的jquery验证事件:
$(".chosen-select").each(function() {
$(this).chosen().on("change", function() {
$(this).parents(".form-group").find("select.form-control").trigger("focusout.validate");
});
});
jquery。Validate现在将.valid类添加到基础选择列表中。
注意:这要求表单输入使用一致的html模式。在我的例子中,每个输入字段都包装在div.form-group中,每个输入都有.form-control。
只是在特定页面中为特定表单添加了ignore:[],这个解决方案对我来说很有效。
$("#form_name").validate({
ignore: [],
onkeyup: false,
rules: {
},
highlight:false,
});
这在ASP中为我工作。网的网站。 要对某些隐藏字段启用验证,请使用以下代码
$(“form”).data(“validator”).settings.ignore = “:hidden:not(#myitem)”;
要为表单的所有元素启用验证,请使用此选项 $("形式"). data .settings(“验证器”)。Ignore = "";
注意在$(document).ready(function(){})中使用它们