簡體   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