Vorrei fare qualcosa del genere per spuntare una checkbox
usando jQuery:
$(".myCheckBox").checked(true);
o
$(".myCheckBox").selected(true);
Esiste una cosa del genere?
Usa .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Se state lavorando con un solo elemento, potete sempre accedere al sottostante HTMLInputElement
e modificare la sua proprietà .checked
:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
Il vantaggio di usare i metodi .prop()
e .attr()
invece di questo è che essi opereranno su tutti gli elementi abbinati.
Il metodo .prop()
non è disponibile, quindi è necessario usare .attr()
.
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Si noti che questo è l'approccio usato dai test unitari di jQuery prima della versione 1.6 ed è preferibile all'uso di $('.myCheckbox').removeAttr('checked');
poiché quest'ultimo, se la casella era inizialmente selezionata, cambierà il comportamento di una chiamata a .reset()
su qualsiasi form che la contiene - un sottile ma probabilmente indesiderato cambiamento di comportamento.
Per un maggiore contesto, alcune discussioni incomplete sulle modifiche alla gestione dell'attributo/proprietà checked
nella transizione dalla 1.5.x alla 1.6 possono essere trovate nelle note di rilascio della versione 1.6 e nella sezione Attributes vs. Properties della .prop()
documentazione.
Utilizzare:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
E se vuoi controllare se una casella di controllo è selezionata o meno:
$('.myCheckbox').is(':checked');
Si può fare
$('.myCheckbox').attr('checked',true) //Standards compliant
o
$("form #mycheckbox").attr('checked', true)
Se hai del codice personalizzato nell'evento onclick per la checkbox che vuoi far scattare, usa questo invece:
$("#mycheckbox").click();
Puoi deselezionare rimuovendo completamente l'attributo:
$('.myCheckbox').removeAttr('checked')
Puoi spuntare tutte le caselle di controllo in questo modo:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});