ermitteln, ob eine Checkbox angehakt ist oder nicht
Donnerstag, 16 Juli 2009 6 Kommentare
häufiger als man denken sollte, benötigt man den Zustand einer Checkbox in einem Webformular. 2 praktikable Wege sind im Angebot.
Ist die ID der Checkbox bekannt, nutzen wir die ID als Selektor und fragen das Attribut checked ab. Ist die Checkbox angehakt, wird true zurückgeliefert, wenn nicht, false.
if( $('#cbox').attr('checked') == true){
// ...
}
// oder kürzer
if( $('#cbox').attr('checked')){
// ...
}
Haben wir mehrere Checkboxen und/oder keine IDs vergeben, empfiehlt sich die Verwendung der Methode each(). Geprüft werden alle Input-Elemente des Typ checkbox. Ist die Box angehakt, wird eine Funktion ausgeführt.
$("input[type=checkbox][checked]").each(
function() {
// ausführen einer Funktion
}
);
This is a nested column
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
This is another nested column
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
sollte es nicht $('input[type=checkbox]:checked') sein?! oder ggf. $('input:checked') ?
Vielen Dank für die Info - kurz und knackig!
$('input[type=checkbox]:checked') würde alle Checkbox'en zurückgeben, die es in dem Dokument gibt und angehakt wurden. Um einen bestimmten Zustand zu einer bestimmten Checkbox abzufragen, ist diese Vorgehensweise nicht empfehlenswert.
Danke. Genau diese Antwort brauchte ich. "attr" kannte ich nicht.
$('input[type=checkbox]', f) wobei f ein Teilbereich der Webseite ist, liefert alle Checkboxen in einem bestimmten Teilbereich (nämlich f).
$(bla).is(':checked') liefert übrigens den aktuellen Zustand der Checkbox. attr('checked') liefert nicht den aktuellen Zustand sondern den zuletzt gesetzten Zustand, der auch im HTML steht. D.h. man setzt die Checkbox mit checked="checked", der Benutzer klickt das Häkchen dann aber weg: .attr('checked') liefert true (im HTML steht noch immer checked="checked") .is(:checked) liefert false (aktuell ist das Häkchen weg) Zumindest bei jQuery 1.7.1 habe ich es so beobachtet.