Vi sarà sicuramente capitato di dover utilizzare checkbox multiple e doverne salvare i valori. jQuery ci offre una semplice soluzione.
Possiamo salvare i valori in un oggetto JavaScript. Ovviamente i valori che ci interessano sono soltanto quelli delle checkbox selezionate dall'utente:
var $context = $( "#form" ),
values = {};
$( ":checkbox", $context ).each(function() {
var $checkbox = $( this );
if( $checkbox.prop( "checked" ) ) {
var name = $checkbox.attr( "name" );
var value = $checkbox.val();
values[ name ] = value;
}
});
Perché non ho usato il selettore :checked
? Perché il metodo prop()
ci consente di eseguire una verifica il cui risultato è al di la di ogni possibile errore.
L'oggetto restituito avrà delle proprietà il cui nome sarà quello dell'attributo name
dei campi e il cui valore corrisponderà all'attributo value
delle checkbox.