2012-10-24 7 views
10

Występuje problem z jQuery Validation i trzeba zignorować niektóre pola.jQuery Walidacja wielu selektorów do ignorowania

Muszę zignorować pola w oparciu o ustawioną przeze mnie klasę, a także wszystkie ukryte pola. To, co muszę zrobić, to następujące rzeczy, ale to tylko uhonorowanie drugiego ignorowania. Zakładam, że istnieje sposób na powiedzenie walidacji jQuery tych wielu selektorów, ale nie mogę tego znaleźć.

validator = $("#form1").validate({ 
    onsubmit: false, 
    ignore: ".ignore", 
    ignore: ":hidden", 

Dzięki

Tim

Odpowiedz

32

Z dokumentacji Walidacja:

jQuery nie-metoda jest stosowana, dlatego wszystko, co zostało przyjęte przez nie() mogą być przekazywane jako ten opcja.

Dlatego wszystko, co trzeba zrobić, to przekazać jeden parametr ze swoimi selektorów oddzielonych przecinkami:

validator = $("#form1").validate({ 
    onsubmit: false, 
    ignore: ".ignore, :hidden" 
}); 
+0

Oczywiście byłoby tak łatwo - ręka na czole ... dlaczego po prostu tego nie spróbowałem? Dzięki! – divtag

+0

Dokumentacja nie czyni tego całkowicie oczywistym - jeśli ustawisz 'ignore:" .ignore "', to _replaces_ będzie domyślną wartością 'ignore:": hidden "'. Jeśli chcesz, aby sprawdzanie poprawności ignorowało ukryte pola, tak jak ma to miejsce, _ i_ zignoruj ​​dodatkowe pola według nazwy klasy lub cokolwiek innego, musisz łańcuchować selektory w sposób pokazany powyżej. – daGUY

1

Możesz dodać klasę do wszystkich ukrytych pól:

$(":hidden").addClass('ignore'); 

http://api.jquery.com/addClass/

+2

Dzięki, pomyślałem o tym, ale nie chciałem tego zrobić, ponieważ wtedy musiałbym radzić sobie z usuwaniem/dodawaniem tej klasy za każdym razem, gdy chciałem pokazać lub ukryć elementy. – divtag

3

Możesz spróbować użyć:

ignore: ".ignore, :hidden" 
0

Tam działa również podwójny "nie()". Np.:

ignore: ".ignore, :hidden:not(.required)" 

W ten sposób niektóre wymagane pola ukryte nie zostaną zignorowane. Może być potrzebny, jeśli ktoś używa dropdawn i wtyczek dostosowujących pole wyboru.

+0

Sprawdź gramatykę i zastanów się nad komentarzem, który jest tylko dodatkiem do już istniejącej odpowiedzi. –