Erfasst das Änderungsereignis eines Kontrollkästchens

Lesezeit: 3 Minuten

Benutzer-Avatar
omg

Wie kann ich das Ereignis checken/deaktivieren von <input type="checkbox" /> mit jQuery?

  • Wenn Sie eine relativ neue Version von JQuery verwenden, würde ich .on(‘change’, function(){…}) verwenden, wie in @Daniel De Leons Antwort unten erwähnt. Ein Vorteil, der “on”-Ereignis-Listener bindet an dynamisch generiertes HTML.

    – BLang

    8. März 2018 um 14:31 Uhr

Benutzer-Avatar
marcgg

<input type="checkbox" id="something" />

$("#something").click( function(){
   if( $(this).is(':checked') ) alert("checked");
});

Bearbeiten: Dadurch wird nicht erkannt, wenn sich das Kontrollkästchen aus anderen Gründen als einem Klick ändert, z. B. mit der Tastatur. Um dieses Problem zu vermeiden, hören Sie sich an changeAnstatt von click.

Informationen zum programmgesteuerten Aktivieren/Deaktivieren finden Sie unter Warum wird mein Kontrollkästchen-Änderungsereignis nicht ausgelöst?

  • document.getElementById(‘something’).checked funktioniert, warum funktioniert $(‘#something’).checked nicht?

    – omg

    21. September 2009 um 15:52 Uhr

  • Ihrem Code fehlt ein Paran und sollte wirklich die jQuery-Methode verwenden, um den Prüfstatus abzurufen.

    – Peter Michaud

    21. September 2009 um 15:53 ​​Uhr

  • Shore: Der Grund, warum getElementById funktioniert, ist, dass es ein DOM-Element zurückgibt, während die $ jQuery-Funktion ein jQuery-Objekt zurückgibt. Das jQuery-Objekt hat das DOM-Element als Eigenschaft, ist aber selbst kein DOM-Objekt.

    – Peter Michaud

    21. September 2009 um 15:54 Uhr

  • Ich weiß, dass ich zu spät zur Party komme, aber das funktioniert nur, wenn ein „Klick“-Ereignis dies auslöst. Wenn Sie aus irgendeinem Grund an anderer Stelle im Code so etwas tun würden: $(“#something”).attr(“checked”, “checked”), würde das Click-Ereignis niemals ausgelöst werden.

    – David Stinemetze

    4. Januar 2012 um 22:23 Uhr

  • @DavidStinemetze: Ich würde sagen, dass du Tonne zuhören könntest change statt klicken. Ich aktualisiere die Antwort

    – Marcgg

    12. Januar 2012 um 14:55 Uhr

Der Klick wirkt sich auf ein Etikett aus, wenn wir eines an das Eingabekästchen angehängt haben?

Ich denke, es ist besser, die Funktion .change() zu verwenden

<input type="checkbox" id="something" />

$("#something").change( function(){
  alert("state changed");
});

  • Dies sollte die akzeptierte Antwort sein, da es bei der Frage um das Abhören eines Check-Ereignisses und nicht um ein Klick-Ereignis geht.

    – Jessica

    23. Mai 2019 um 8:57 Uhr

Benutzer-Avatar
karim79

Verwenden Sie die :gecheckt Selektor, um den Zustand des Kontrollkästchens zu bestimmen:

$('input[type=checkbox]').click(function() {
    if($(this).is(':checked')) {
        ...
    } else {
        ...
    }
});

Verwenden Sie für JQuery 1.7+:

$('input[type=checkbox]').on('change', function() {
  ...
});

Benutzer-Avatar
Deepak Saini

Dieser Code erfüllt Ihre Anforderungen:

<input type="checkbox" id="check" >check it</input>

$("#check").change( function(){
   if( $(this).is(':checked') ) {
        alert("checked");
    }else{
        alert("unchecked");
   }
});

Sie können es auch überprüfen jsfiddle

Benutzer-Avatar
Erik Terwan

Verwenden Sie das folgende Code-Snippet, um dies zu erreichen.:

$('#checkAll').click(function(){
  $("#checkboxes input").attr('checked','checked');
});

$('#UncheckAll').click(function(){
  $("#checkboxes input").attr('checked',false);
});

Oder Sie können dasselbe mit einem einzelnen Kontrollkästchen tun:

$('#checkAll').click(function(e) {
  if($('#checkAll').attr('checked') == 'checked') {
    $("#checkboxes input").attr('checked','checked');
    $('#checkAll').val('off');
  } else {
    $("#checkboxes input").attr('checked', false);
    $('#checkAll').val('on'); 
  }
});

Zur Demo: http://jsfiddle.net/creativegala/hTtxe/

Benutzer-Avatar
Brandon Askov

Meiner Erfahrung nach musste ich das aktuelle Ziel des Ereignisses nutzen:

$("#dingus").click( function (event) {
   if ($(event.currentTarget).is(':checked')) {
     //checkbox is checked
   }
});

1311810cookie-checkErfasst das Änderungsereignis eines Kontrollkästchens

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy