Sui: Variable wird nicht mehr aufgelöst

Hallo,

ich habe ein Problem mit einem Java Script. Bei diesem Script wird zu Beginn ein Formular mit vielen checkboxen aufgebaut und jede Checkbox erhält dynamisch einen Namen. Der Name sieht dann so aus:

gruppen[x]

wobei das x für eine fortlaufende Zahl steht. Somit kann ich ja theorietisch jede Checkbox ansprechen.

In einer anderen Funktion lese ich diese dann aus und schreib sie, sofern sie angehackt sind, in ein Array. Das sieht dann so aus

function fillgrouparray() {
 var group=new Array();
 var y=0;
 for(var x=0; x<groupcount; x++) {
  checkboxname="gruppen["+x+"]";
  if(document.getElementById(checkboxname).checked==true){
                group[y]=document.getElementById(checkboxname).value;
   y++;
  }
 }
}

Wird diese Funktion aber durchlaufen funktioniert es nicht. Lass ich mir den Wert document.getElementById(checkboxname).value mittels alert ausgeben, wird angegeben das das Objekt null ist.

Seltsamerweise hat es vor Wochen genau so funktioniert...

Habt ihr irgendwelche Ideen woran es liegen könnte?

  1. Mahlzeit Sui,

    jede Checkbox erhält dynamisch einen Namen. Der Name sieht dann so aus:

    gruppen[x]

    Mit "Name meinst Du das HTML-Attribut "http://de.selfhtml.org/html/referenz/attribute.htm#input@title=name"?

    Wird diese Funktion aber durchlaufen funktioniert es nicht. Lass ich mir den Wert document.getElementById(checkboxname).value mittels alert ausgeben, wird angegeben das das Objekt null ist.

    Kein Wunder - Du weißt schon, dass es einen Unterschied zwischen http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById() und http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name@title=getElementsByName() gibt?

    Seltsamerweise hat es vor Wochen genau so funktioniert...

    Das wage ich mal ganz stark zu bezweifeln ...

    MfG,
    EKKi

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

      Mit "Name meinst Du das HTML-Attribut "name"?

      Ja genau den.

      Kein Wunder - Du weißt schon, dass es einen Unterschied zwischen getElementById() und getElementsByName() gibt?

      Wunder gibt es immer wieder aber ich dachte mir schon, dass es dabei Unterschiede gibt, jedoch funktionieren andere Elemente mit getElementById auch. Ich bin mir aber nicht sicher welche Funktion ich verwendet habe, da ich während den Tests es etwas umgeschrieben habe.

      Wenn ich versuche die Checkbox mit getElementsByName() anzusprechen, erhalte ich die Fehlermeldung "TypeError: document.getElementByName is not a function"

      Danke schonmal für die schnelle und freundliche Antwort

      1. Hallo,

        schau genau hin:

        Wenn ich versuche die Checkbox mit

        getElementsByName() anzusprechen, erhalte ich die Fehlermeldung "TypeError: document.
        getElementByName is not a function"

        Zur Verwendung, siehe getElementsByName().

        Bitte beachte folgenden Unterschied:
        IDs müssen eindeutig sein, Namen nicht.
        Die Konsequenz daraus kann man an den Funktionsnamen ablesen, sie zeigt sich im Rückgabewert.

        Freundliche Grüße

        Vinzenz

        1. Sry wohl Tomaten auf den Augen.... danke dafür

          jetzt erhalte ich aber wenn ich die ceckbox folgendermaßen anspreche:

          document.getElementsByName(checkboxname).value

          eine Rückgabe "undefinied". Selbiges bei Ausgabe von document.getElementsByName(checkboxname).checked.

          1. Hallo,

            Sry wohl Tomaten auf den Augen.... danke dafür

            erster Fehler beseitigt, aber ...

            jetzt erhalte ich aber wenn ich die ceckbox folgendermaßen anspreche:
            document.getElementsByName(checkboxname).value
            eine Rückgabe "undefinied". Selbiges bei Ausgabe von document.getElementsByName(checkboxname).checked.

            jetzt mit korrektem Link:
            Siehe getElementsByName(), Abschnitt "Erläuterung:".

            Die Funktion kann mehrere Elemente zurückliefern, infolgedessen ist der Rückgabewert eben *nicht* ein Element - auch dann nicht, wenn der Name exakt einmal vorhanden ist.

            Freundliche Grüße

            Vinzenz