Sammy: checkboxen markieren

Hallo Leute,

ich stehe gerade auf dem Schlauch ...

Ich baue mit ASP dynamisch aus einer Datenbank eine Tabelle auf, und in jeder Zeile ist eine checkbox (name="bew_zustimm").
Um mit einem Klick alle Checkboxen zu markieren, hab ich folgendes JavaScript:

for (i=0; i < document.form1.bew_zustimm.length; i++) {
  document.form1.bew_zustimm[i].checked = true;
}

Funktioniert auch prima, außer in dem Fall, wenn es nur einen einzigen Datensatz gibt.

document.form1.bew_zustimm.length gibt dann 'undefined' zurück.

In diesem Fall funktioniert also
   document.form1.bew_zustimm[0].checked = true;
nicht, sondern nur
   document.form1.bew_zustimm.checked = true;

Kann das sein? Das kann ich irgendwie gar nicht glauben.
Wie kann ich denn jetzt darauf reagieren?

LG, Sammy

  1. Hi Sammy,

    ich vermute, wenn nur ein Element vorhanden ist, gibt es kein Array auf das du zugreifen kannst.

    Du könntest in zwei Schritten vorgehen.

    1. prüfen ob "bew_zustimm" vorhanden ist
      2a) wenn "document.form1.bew_zustimm.length" "defined" mach dies und das
      2b) sonst mache dies und das

    geht bestimmt auch eleganter.

    so long
    Ole
    (8-)>

    --
    Stickstoff eignet sich nicht für Handarbeiten.
  2. hi,

    Funktioniert auch prima, außer in dem Fall, wenn es nur einen einzigen Datensatz gibt.

    document.form1.bew_zustimm.length gibt dann 'undefined' zurück.

    In diesem Fall funktioniert also
       document.form1.bew_zustimm[0].checked = true;
    nicht, sondern nur
       document.form1.bew_zustimm.checked = true;

    Kann das sein?

    Ja, weil du keine NodeList bekommst, wenn es nur ein Element dieses Namens gibt.

    Wie kann ich denn jetzt darauf reagieren?

    </archiv/2007/6/t154705/#m1007149>

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Super, dankeschön für die schnelle Hilfe!

      Ich bin immernoch ganz verblüfft, dass mir der Bug bisher noch nie aufgefallen ist .....!!!

      Wie kann ich denn jetzt darauf reagieren?

      </archiv/2007/6/t154705/#m1007149>