繁体   English   中英

jQuery.validator无法将默认忽略选择器分配给jQuery.validator.defaults.ignore

[英]jQuery.validator cannot assign default ignore selector to jQuery.validator.defaults.ignore

我从这里知道我可以在jQuery.validate方法中像这样传递忽略选项...

$('form').validate({
    ignore: ":hidden"
});

...效果很好,但是我想默认设置验证器忽略“:hidden”表单域...我尝试了以下操作:

jQuery.validator.defaults.ignore.push(":hidden");

...但是它不起作用。

为了隐藏表单域,我将它们包装在div中,然后隐藏了div。 默认情况下已应用“显示:无”。

有人有想法么?

编辑:我一直想知道在萤火虫中看了一下之后,jQuery中的“ not()”方法是否不意味着能够采用数组...这就是jQuery.validator.defaults.ignore财产是,还是其他?

编辑2我注意到,如果我这样做:

jQuery.validator.defaults.ignore = ":hidden";

它有效...再次,我认为这可能是一个数组...

结果似乎使用上面的Edit 2中的代码并不是没有道理的,因为当您在validate()方法中分配'ignore:“:hidden”'时,您实际上是在做同样的事情……令我明白的是,默认值为数组。

.not()的重载之一是.not([elements])有关详细信息请参见此处 []的初始声明传递了一组空元素,没有任何内容可供jQuery删除。 当您将类型更改为字符串时,您正在调用不同的.not()重载。

尽管defaults.ignore属性是一个数组,但是它传递给jQuery not()方法,该方法带有一个选择器...因此,通过按以下方式分配字符串,验证程序会忽略视图之外的元素。 这有效:

jQuery.validator.defaults.ignore = ":hidden"; 

我唯一真正的问题是,为什么它首先是数组。 它的定义如下:

ignore: []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM