un Forastero  <Webworking>


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
}
);





Kommentare

es gibt insgesamt 6 Kommentar(e)

  1. egal http://world.wide.wait.somewhere.com.uk schreibt am 16.09.2010, 12.09 Uhr

    sollte es nicht $('input[type=checkbox]:checked') sein?! oder ggf. $('input:checked') ?

  2. Daniel S http://www.shiftedwork.de/blog schreibt am 05.01.2011, 10.23 Uhr

    Vielen Dank für die Info - kurz und knackig!

  3. Lurchi http://firmen-suche.org schreibt am 11.04.2011, 17.54 Uhr

    $('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.

  4. Buxmann Jürgen http://www.buxmann.at schreibt am 09.12.2011, 22.06 Uhr

    Danke. Genau diese Antwort brauchte ich. "attr" kannte ich nicht.

  5. egal schreibt am 14.12.2011, 16.37 Uhr

    $('input[type=checkbox]', f) wobei f ein Teilbereich der Webseite ist, liefert alle Checkboxen in einem bestimmten Teilbereich (nämlich f).

  6. immer noch egal schreibt am 20.12.2011, 15.42 Uhr

    $(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.



Name*
Vorname
Kommentar*
Email
Homepage
Telefon
Sicherheitscode *
 


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.