2012-10-24 2 views
10

Si è verificato un problema con jQuery Validation e occorre ignorare alcuni campi.jQuery Convalida più selettori per ignorare

Devo ignorare i campi basati su una classe che ho impostato e quindi anche tutti i campi nascosti. Quello che devo fare è il seguente, ma è solo onorare il secondo ignorare. Suppongo che ci sia un modo per dire a jQuery Validation questi selettori multipli ma non riesco a trovarlo.

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

Grazie,

Tim

risposta

32

Dalla documentazione di convalida:

jQuery non-metodo viene utilizzato, quindi, tutto ciò che è accettato da meno() può essere passato come questo opzione.

Quindi tutto quello che dovete fare è passare un parametro con i tuoi selettori separati da virgole:

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

Certo che sarebbe così facile - mano a fronte ... perché non l'ho provato? Grazie! – divtag

+0

La documentazione non lo rende assolutamente ovvio - se si imposta 'ignore:" .ignore "', che _previene_ il valore predefinito di 'ignore: ": nascosto" '. Quindi, se vuoi che la convalida ignori i campi nascosti come fa di default, e ignora i campi aggiuntivi per nome della classe o qualsiasi altra cosa, devi concatenare i selettori come mostrato sopra. – daGUY

1

È possibile aggiungere una classe a tutti i campi nascosti:

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

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

+2

Grazie, ci avevo pensato ma non volevo farlo perché allora avrei dovuto occuparmi di rimuovere/aggiungere quella classe ogni volta che volevo mostrare o nascondere elementi. – divtag

3

Si potrebbe provare a utilizzare:

ignore: ".ignore, :hidden" 
0

C'è anche il doppio "non()". Cioè:

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

In questo modo alcuni campi nascosti che sono richiesti non saranno ignorati. Potrebbe essere necessario se qualcuno usa dropdawn e plug-in di personalizzazione delle caselle di controllo.

+0

Controlla la grammatica e considera di fare un commento, questa è solo un'aggiunta a una risposta già esistente. –