WulleBulle: Checkbox-Status abfragen

Hallo zusammen,

ich arbeite nicht wirklich viel mit Javascript.
So habe ich hier ein kleines Skript, mit dem ich den Status einer Liste von Checkboxen abfrage, die alle den gleichen Namen haben.

  
function getChecked() {  
 var isChecked = 0;  
 var fileNames = new Array(); alert(document.details.picName.length);  
 for (i=0; i<document.details.picName.length; i++) {  
  if (document.details.picName[i].checked) {  
   fileNames[isChecked] = document.details.picName[i].value;  
   isChecked++;  
  }  
 }  
 return fileNames;  
 return isChecked;  
}  

Das funktioniert auch solange mehr als eine Box angehakt ist. Ist nur eine Box angehakt, erhalte ich im Array "document.details.picName" ein undefined.

Ich bitte um Hilfe.

Vielen Dank und lieben Gruß
Wulle

  1. Hi,

    Das funktioniert auch solange mehr als eine Box angehakt ist. Ist nur eine Box angehakt, erhalte ich im Array "document.details.picName" ein undefined.

    Was heisst bitte "im" Array?
    Hast du mal ein vollstaendiges Online-Beispiel?

    Und was willst du eigentlich mit zwei aufeinanderfolgenden return-Statements bezwecken? Dass davon nur das erste ausgefuehrt, und danach die Funktion verlassen wird, sollte doch wohl klar sein.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Das funktioniert auch solange mehr als eine Box angehakt ist. Ist nur eine Box angehakt, erhalte ich im Array "document.details.picName" ein undefined.

      Was heisst bitte "im" Array?
      Hast du mal ein vollstaendiges Online-Beispiel?

      Und was willst du eigentlich mit zwei aufeinanderfolgenden return-Statements bezwecken? Dass davon nur das erste ausgefuehrt, und danach die Funktion verlassen wird, sollte doch wohl klar sein.

      MfG ChrisB

      Ja sorry, da ist noch bissel etwas im Code, das nur zu Testzwecken da auftaucht. Mit "Array" meine ich die Liste, die entsteht, wenn es mehrere Checkboxen gleichen Namens gibt.

      1. Hi,

        bitte zitiere vernuenftig!

        Mit "Array" meine ich die Liste, die entsteht, wenn es mehrere Checkboxen gleichen Namens gibt.

        Das war mir klar - aber was du damit meinst, dass du einen "Fehler im Array" erhaeltst, wollte ich wissen.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Das war mir klar - aber was du damit meinst, dass du einen "Fehler im Array" erhaeltst, wollte ich wissen.

          Achso, sorry.
          Gibt es nur eine Checkbox mit Namen "picName", ist "document.details.picName.length" gleich "undefined", egal ob die Checkbox angehakt ist oder nicht.

          Gibt es mehrere Checkboxen mit Namen "picName", dann funktioniert die Funktion einwandfrei, also egal ob nur eine der Boxen angehakt wird oder mehrere.

  2. Kleine Verbesserung:

    Ich meinte NICHT, wenn nur eine angehakt ist.

    Richtig wäre gewesen:

    Wenn es nur eine Checkbox gibt, dann erhalte ich den Fehler "undefined", egal ob die Box angehakt ist oder nicht. Wenn es mehrere Boxen mit dem Namen "picName" gibt, dann kann auch nur eine angehakt sein und es funktioniert einwandfrei.

    Sorry 4 bothering.

    1. Mahlzeit WulleBulle,

      Wenn es mehrere Boxen mit dem Namen "picName" gibt, dann kann auch nur eine angehakt sein und es funktioniert einwandfrei.

      Gemeinhin benutzt man für so etwas ("Gruppe von Knöpfchen, von denen nur eines angekreuzt sein darf") Radiobuttons ... warum in diesem Fall nicht?

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. Mahlzeit WulleBulle,

        Wenn es mehrere Boxen mit dem Namen "picName" gibt, dann kann auch nur eine angehakt sein und es funktioniert einwandfrei.

        Gemeinhin benutzt man für so etwas ("Gruppe von Knöpfchen, von denen nur eines angekreuzt sein darf") Radiobuttons ... warum in diesem Fall nicht?

        MfG,
        EKKi

        Hiho, danke, das ist mir schon klar. Die Liste kann aber 1-x Elemente enthalten. In diesem Fall eben je nachdem, wieviele Bilder in einem Verzeichnis enthalten sind.

    2. Hi,

      Ich meinte NICHT, wenn nur eine angehakt ist.

      Das dachte ich mir schon fast.

      Richtig wäre gewesen:

      Wenn es nur eine Checkbox gibt, dann erhalte ich den Fehler "undefined", egal ob die Box angehakt ist oder nicht. Wenn es mehrere Boxen mit dem Namen "picName" gibt, dann kann auch nur eine angehakt sein und es funktioniert einwandfrei.

      Wenn es nur ein Formularelement mit dem Namen gibt, dann erhaeltest du keine NodeList (vulgo: "Array"), sondern bekommst direkt die Referenz auf dieses Element.

      Frage also vor dem Zugriff ab, ob es mehrere gibt. (Wenn die Rueckgabe keine length-Eigenschaft hat, dann gibt es wohl nur eines.)

      MfG ChrisB

      --
      „This is the author's opinion, not necessarily that of Starbucks.“
  3. Hallo nochmal,

    mit etwas "Rumprobieren" habe ich es nun herausgefunden. Sobald es nur eine Checkbox eines Names gibt, ist es keine Collection mehr und ich muss den value des Elements abfragen.

    Danke für Eure Mühe und sorry für meine unzureichenden Quoting-Kenntnisse.

    LG
    Wulle