I'd wie etwas wie dieses zu tun, um eine "Checkbox" mit jQuery zu ticken:
$(".myCheckBox").checked(true);
oder
$(".myCheckBox").selected(true);
Gibt es so etwas?
Verwenden Sie .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Wenn Sie nur mit einem Element arbeiten, können Sie immer auf das zugrunde liegende HTMLInputElement
zugreifen und dessen .checked
Eigenschaft ändern:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
Der Vorteil der Verwendung der Methoden .prop()
und .attr()
ist, dass sie auf alle übereinstimmenden Elemente wirken.
Die Methode .prop()
ist nicht verfügbar, daher müssen Sie .attr()
verwenden.
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Beachten Sie, dass dies der Ansatz ist, der von den jQuery-Unit-Tests vor Version 1.6 verwendet wurde und der Verwendung von $('.myCheckbox').removeAttr('checked');
vorzuziehen ist, da letzteres, wenn das Kästchen ursprünglich markiert war, das Verhalten eines Aufrufs von .reset()
auf jedem Formular, das es enthält, ändern wird - eine subtile, aber wahrscheinlich unerwünschte Verhaltensänderung.
Eine unvollständige Diskussion der Änderungen im Umgang mit dem Attribut/der Eigenschaft "checked" beim Übergang von 1.5.x zu 1.6 findet sich in den Version 1.6 Release Notes und im Abschnitt Attribute vs. Eigenschaften der .prop()
Dokumentation.
Verwendung:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
Und wenn Sie prüfen wollen, ob ein Kontrollkästchen aktiviert ist oder nicht:
$('.myCheckbox').is(':checked');
Das können Sie tun
$('.myCheckbox').attr('checked',true) //Standards compliant
oder
$("form #mycheckbox").attr('checked', true)
Wenn Sie benutzerdefinierten Code im onclick-Ereignis für das Kontrollkästchen haben, den Sie auslösen möchten, verwenden Sie stattdessen diesen:
$("#mycheckbox").click();
Sie können die Markierung aufheben, indem Sie das Attribut vollständig entfernen:
$('.myCheckbox').removeAttr('checked')
Sie können alle Kontrollkästchen wie folgt ankreuzen:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});