So che questo è vecchio, ma la domanda era un po 'ambigua che ginocchiera può significare che ogni checkbox dovrebbe alternare il suo stato, qualunque esso sia. Se hai selezionato 3 e 2 deselezionato, la commutazione renderebbe il primo 3 non selezionato e gli ultimi 2 selezionati.
Per questo, nessuna delle soluzioni qui funzionano come fare tutte le caselle di controllo hanno lo stesso stato, piuttosto che alternare lo stato di ciascuna casella di controllo. Effettuando $(':checkbox').prop('checked')
su molte caselle di controllo viene restituita la logica AND tra tutte le proprietà binari .checked
, ad esempio se una di esse è deselezionata, il valore restituito è false
.
È necessario utilizzare .each()
se si desidera effettivamente alternare ogni stato della casella di controllo anziché renderli tutti uguali, ad es.
$(':checkbox').each(function() { this.checked = !this.checked; });
Si noti che non è necessario $(this)
all'interno del gestore come la proprietà .checked
esiste in tutti i browser.
@AnApprentice, mi dispiace, sono la stessa cosa, mi è stato solo di essere sciocco;) –
Questo davvero aiutato. Grazie. – tmutton
L'ho usato per aiutarmi ad attivare/disattivare singole caselle di controllo! Grazie per il codice fantastico, breve, comprensibile! – mbm29414