Arthur: Checkboxen mit unbekannter Anzahl auslesen

Hallo zusammen,
ich möchte in einem Formular Checkboxen auslesen, kenne aber deren Anzahl nicht, da das Formular dynamisch generiert wurde.
Beim Suchen im Forum habe ich einige Hinweise bekommen und damit auch Erfolg gehabt - allerdings nur, wenn mehrere Boxen vorhanden sind.
Ist nur eine einzige Box vorhanden, dann kann ich die Anzahl nicht mehr ermitteln.
Ich habe nun durch einiges Ausprobieren einen Weg gefunden, wie ich das trotzdem hinbekomme, aber ich bin sicher, es gibt einen eleganteren Weg.
Vielleicht kann mir jemand die geeigneten Tips geben ... Vielen Dank schon mal im Voraus!

Hier ist der abgestrippte Code, so wie er gerade funktioniert:
Wenn man die zweite checkbox rauslöscht kommt man genau auf den kritischen Punkt.

<HTML><HEAD></HEAD>

<body>
<form name=Formular>
  <INPUT id=Loeschen type=button onclick="IDTransmit('Zieladresse')" value='Abfragen' tabindex=1000>

<input type='checkbox' name='Row' value='1'>
  <input type='checkbox' name='Row' value='2'>

</form></body>

<script type="text/JavaScript">
function IDTransmit()
{
        boxen=new Array;
        Anzahl = document.Formular.Row.length
alert ('Anzahl der checkboxen = '+Anzahl);

// Falls mehrere Checkboxen dargestellt werden, dann bekomme ich eine vernünftige Anzahl.
        // Falls aber nur eine dargestellt ist, dann ist Anzahl undefiniert und man kann Row nicht als Array behandeln.

if (typeof Anzahl == 'undefined') // Nur eine Checkbox dargestellt!
        {
                if(document.Formular.Row.checked) { boxen.push(document.Formular.Row.value); }
        }
        else
        {
                for(i=0; i<Anzahl; i++)
                {
                         if(document.Formular.Row[i].checked) { boxen.push(document.Formular.Row[i].value); }
                }
        }

Ergebnis=boxen.join("_");

alert ('Values der angeklickten checkboxen lauten: '+Ergebnis);
}
</script>

</BODY>
</HTML>

  1. Ich habe nun durch einiges Ausprobieren einen Weg gefunden, wie ich das trotzdem hinbekomme, aber ich bin sicher, es gibt einen eleganteren Weg.

    Es geht genau so.

    Struppi.

    1. Es geht genau so.

      Struppi.

      Jetzt bin ich aber platt!
      Ich hattte einen ganzen Tag nach anderen Möglichkeiten gesucht....
      Na dann umso mehr Dank für die rasche Antwort!
      Arthur

      1. Ich hattte einen ganzen Tag nach anderen Möglichkeiten gesucht....
        Na dann umso mehr Dank für die rasche Antwort!

        Du hast das entdeckt, wo bestimmt schon viele dran gescheitert sind. Es ist tatsächlich so, das wenn ein Formelement nur einmal vorhanden ist, ist es kein Array (bzw. Collection) und sobald der Name mehrmals vorkommt schon. Das gilt für alle Formularelemente.

        Und soweit ich weiß läßt sich dies nur über die length Eingenschaft rausfinden (wobei ich sicher bin, dass es auch einen anderen Weg gibt)

        Struppi.