4580 Stimmen

Einstellung "checked" für ein Kontrollkästchen mit jQuery

Ich würde gerne so etwas tun, um ein Häkchen bei checkbox mit jQuery :

$(".myCheckBox").checked(true);

o

$(".myCheckBox").selected(true);

Gibt es so etwas?

0 Stimmen

Eine spezifischere (und sehr nützliche!) Frage, "Wie überprüfe ich ein Element in einem Kontrollkästchen, das nach Wert gesetzt ist?", können wir auch hier diskutieren, und ich habe eine Antwort unten gepostet.

0 Stimmen

Weitere Möglichkeiten, dies mit jQuery zu tun, finden Sie hier stackoverflow.com/a/22019103/1868660

0 Stimmen

Wenn Sie das onchange-Ereignis auslösen müssen, ist es $("#mycheckbox").click();

70voto

Chris Brandsma Punkte 11525
$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();

Bei der letzten wird das Klick-Ereignis für das Kontrollkästchen ausgelöst, bei den anderen nicht. Wenn Sie also benutzerdefinierten Code im onclick-Ereignis für das Kontrollkästchen haben, den Sie auslösen möchten, verwenden Sie den letzten.

4 Stimmen

Die oberste wird fehlschlagen...checked ist kein Jquery-Objektmitglied

5 Stimmen

Diese Antwort ist veraltet, denn sie verwendet .attr anstelle von .prop .

0 Stimmen

IMO ist die click Ereignis ist in Firefox und Edge unzuverlässig.

65voto

mcgrailm Punkte 17079

Um ein Kontrollkästchen zu aktivieren, sollten Sie

 $('.myCheckbox').attr('checked',true);

o

 $('.myCheckbox').attr('checked','checked');

und um ein Kontrollkästchen zu deaktivieren, sollten Sie es immer auf false setzen:

 $('.myCheckbox').attr('checked',false);

Wenn Sie das tun

  $('.myCheckbox').removeAttr('checked')

wird das Attribut vollständig entfernt, so dass Sie das Formular nicht zurücksetzen können.

BAD DEMO jQuery 1.6 . Ich glaube, das ist kaputt. Für 1.6 werde ich einen neuen Beitrag dazu machen.

NEW WORKING DEMO jQuery 1.5.2 funktioniert in Chrome.

Beide Demos verwenden

$('#tc').click(function() {
    if ( $('#myCheckbox').attr('checked')) {
        $('#myCheckbox').attr('checked', false);
    } else {
        $('#myCheckbox').attr('checked', 'checked');
    }
});

1 Stimmen

Dies ist ungenau. Wenn das Attribut "checked" auf '' gesetzt wird, wird no deaktivieren Sie zumindest in Chrome die Kontrollkästchen.

0 Stimmen

@xixonia Ich habe getestet, bevor ich Ihre Fiddle gepostet funktioniert nicht, weil Sie nicht ändern, das Menü auf der linken Seite zu jquery enthalten

0 Stimmen

@xixonia wieder danke, es scheint, dass dies nicht die gleiche Art und Weise in jauery 1.6 siehe Hinweis oben danke für das Hinzufügen Ihrer Lösung als gut funktionieren

56voto

Abou-Emish Punkte 1961

Damit werden Elemente ausgewählt, die das angegebene Attribut mit einem Wert haben, der die angegebene Teilzeichenkette "ckbItem" enthält:

$('input[name *= ckbItem]').prop('checked', true);

Es werden alle Elemente ausgewählt, die ckbItem in ihrem Namensattribut enthalten.

51voto

Peter Krauss Punkte 12277

Angenommen, die Frage lautet...

Wie überprüfe ich einen Checkbox-Satz? NACH WERT?

Denken Sie daran, dass in einem typischen Checkbox-Set alle Eingabe-Tags denselben Namen haben, sie unterscheiden sich durch das Attribut value : Es gibt keine ID für jeden Eingang der Menge.

Die Antwort von Xian lässt sich erweitern durch eine spezifischerer Selektor unter Verwendung der folgenden Codezeile:

$("input.myclass[name='myname'][value='the_value']").prop("checked", true);

48voto

Overbeeke Punkte 1964

Ich habe die Lösung nicht gefunden. Ich werde immer verwenden:

if ($('#myCheckBox:checked').val() !== undefined)
{
    //Checked
}
else
{
    //Not checked
}

3 Stimmen

Das beantwortet die Frage nicht (die Frage bezieht sich auf Einstellung ob ein Kontrollkästchen angekreuzt ist, nicht die Feststellung, ob ein Kontrollkästchen angekreuzt ist). Es ist auch ein ziemlich hässlicher Weg, um festzustellen, ob das Kontrollkästchen aktiviert ist (zum einen nutzen Sie die nicht selbstverständliche Tatsache aus, dass .val() wird immer zurückkehren undefined wenn es bei 0 Elementen aufgerufen wird, um zu erkennen, dass ein jQuery-Objekt leer ist, während man einfach seine .length stattdessen) - siehe stackoverflow.com/questions/901712/ für besser lesbare Ansätze.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X