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

jQuery.validator无法将默认忽略选择器分配给jQuery.validator.defaults.ignore,jquery,plugins,jquery-plugins,validation,Jquery,Plugins,Jquery Plugins,Validation,我知道我可以在jQuery.validate方法中传递一个ignore选项,如下所示 $('form').validate({ ignore: ":hidden" }); 。。。这很好,但我想将验证器设置为默认情况下忽略“:hidden”表单字段。。。我尝试了以下方法: jQuery.validator.defaults.ignore.push(":hidden"); 。。。但它不起作用 为了隐藏表单字段,我将它们包装在一个div中,然后隐藏div;默认情况下应用了“显示:无” 有人

我知道我可以在jQuery.validate方法中传递一个ignore选项,如下所示

$('form').validate({
    ignore: ":hidden"
});
。。。这很好,但我想将验证器设置为默认情况下忽略“:hidden”表单字段。。。我尝试了以下方法:

jQuery.validator.defaults.ignore.push(":hidden");
。。。但它不起作用

为了隐藏表单字段,我将它们包装在一个div中,然后隐藏div;默认情况下应用了“显示:无”

有人有什么想法吗

编辑: 在看了firebug一眼之后,我一直在想,jQuery中的“not()”方法是否意味着不能获取数组。。。jQuery.validator.defaults.ignore属性是什么,还是其他什么

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

jQuery.validator.defaults.ignore = ":hidden";
它是有效的。。。再一次,我认为它可能是一个数组

结果
似乎在上面的编辑2中使用代码并不是不合理的,因为在validate()方法中指定'ignore:“:hidden”'时,您实际上在做相同的事情。。。让我吃惊的是,默认值中的项是一个数组。

尽管defaults.ignore属性是一个数组,但它会传递给jQuery not()方法,该方法使用选择器。。。因此,通过如下分配字符串,验证程序将忽略视图外的元素。这项工作:

jQuery.validator.defaults.ignore = ":hidden"; 
我唯一真正想问的是为什么它首先是一个数组。它的定义如下:

ignore: []

尽管defaults.ignore属性是一个数组,但它被传递给jQuery not()方法,该方法使用一个选择器。。。因此,通过如下分配字符串,验证程序将忽略视图外的元素。这项工作:

jQuery.validator.defaults.ignore = ":hidden"; 
我唯一真正想问的是为什么它首先是一个数组。它的定义如下:

ignore: []

.not()
的重载之一是
.not([elements])
[]
的初始声明传递了一组空元素,没有留下任何东西供jQuery删除。当您将类型更改为字符串时,您正在调用另一个重载
.not()

.not()
的重载之一是
.not([elements])
[]
的初始声明传递了一组空元素,没有留下任何东西供jQuery删除。当您将类型更改为字符串时,您调用的是另一个重载
.not()

谢谢,我没有意识到这一点。它解释了为什么它不起作用。。。这是因为我没有传递元素(我试图传递一个jQuery选择器数组。我已经给了你一个+1,你也可以得到答案,因为你已经解释了为什么第一种方法不起作用…谢谢,我没有意识到这一点。这解释了为什么它不起作用…因为我没有传递元素(我试图传递一组jQuery选择器。我已经给了你一个+1,你也可以得到答案,因为你已经解释了为什么第一种方法不起作用。。。