Twilo: auf ein Form-Element zugreifen

Hallo,

ich habe ein Formularelement wie folgt erstellt
<input name="option[1]" type="hidden" value="1" />
wenn ich per JavaScript folgendes aufrufe
alert(document.forms[0].option[1].value);

Opera gibt mir folgende Fehlermeldung aus

----------------------------------------------------------------------------
JavaScript - http://xxx.de/index.php
Event thread: load
Error:
name: TypeError
message: Statement on line 90: Could not convert undefined or null to object
Backtrace:
  Line 90 of inline#1 script in http://xxx.de/index.php
    alert(document.forms[0].option[1].value);
  Line 1 of  script
    elementeAktualisieren();
  At unknown location
    [statement source code not available]
----------------------------------------------------------------------------

wie kann, bzw. muss ich diese Fehlermeldung "Could not convert undefined or null to object" verstehen?

mfg
Twilo

  1. Moin!

    Du hast etwas im Namen verwendet, was man nicht verwenden sollte: [1].

    Mit option[1] versucht JS den Zugriff auf Index 1 des arrays "option". Da es das Array nicht gibt, wird das zu "null" und in der Folge schlägt natürlich auch der Zugriff auf null.value fehl.

    -- Skeeve

  2. Hallo Twilo.

    ich habe ein Formularelement wie folgt erstellt
    <input name="option[1]" type="hidden" value="1" />
    wenn ich per JavaScript folgendes aufrufe
    alert(document.forms[0].option[1].value);

    Opera gibt mir folgende Fehlermeldung aus

    Du müsstest ja auch folgendermaßen auf das Formularelement zugreifen:

    document.forms[0].elements['option[1]'].value

    Über diese Schreibweise kannst auf auf Objekte und Eigenschaften aller Art zugreifen, selbst wenn sie übliche Namenskonventionen brechen.

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    debian/rules
    1. Hallo,

      Du müsstest ja auch folgendermaßen auf das Formularelement zugreifen:

      document.forms[0].elements['option[1]'].value

      Über diese Schreibweise kannst auf auf Objekte und Eigenschaften aller Art zugreifen, selbst wenn sie übliche Namenskonventionen brechen.

      danke, ich werde das mal testen

      wie kann ich denn sonst ein Array erstellen lassen?
      in php kam ein Array bei raus

      mfg
      Twilo

      1. Hallo Twilo.

        Du müsstest ja auch folgendermaßen auf das Formularelement zugreifen:

        document.forms[0].elements['option[1]'].value

        Über diese Schreibweise kannst auf auf Objekte und Eigenschaften aller Art zugreifen, selbst wenn sie übliche Namenskonventionen brechen.

        danke, ich werde das mal testen

        wie kann ich denn sonst ein Array erstellen lassen?

        In JavaScript gar nicht. Du kannst höchstens, wie oben geschehen, die bestehende Objekthierarchie nutzen.

        in php kam ein Array bei raus

        PHP ist ja auch eine Sache für sich.

        Einen schönen Samstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        debian/rules
        1. Hallo,

          in php kam ein Array bei raus

          PHP ist ja auch eine Sache für sich.

          wie löst man denn das Problem in anderen Sprachen?

          Beispiel phpMyAdmin
          dort kann man mehrere Datensätze per Ceckboxen auswählen
          dort nennen sie die Cechbox z.B. "rows_to_delete[+%60_eigenschaft_id%60+%3D+1]"
          wenn das Formular abgeschickt wird, steht dann $_POST['rows_to_delete'][...] zur Verfügung

          mfg
          Twilo

          1. Hallo Twilo.

            in php kam ein Array bei raus

            PHP ist ja auch eine Sache für sich.

            wie löst man denn das Problem in anderen Sprachen?

            Keine Ahnung, da ich andere kaum kenne.

            Beispiel phpMyAdmin
            dort kann man mehrere Datensätze per Ceckboxen auswählen
            dort nennen sie die Cechbox z.B. "rows_to_delete[+%60_eigenschaft_id%60+%3D+1]"
            wenn das Formular abgeschickt wird, steht dann $_POST['rows_to_delete'][...] zur Verfügung

            Und? Dass PHP Array-ähnliche Zeichen automatisch in ein Array konvertiert, ist bekannt.

            Was hat das mit JavaScript zu tun?

            Einen schönen Sonntag noch.

            Gruß, Mathias

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            debian/rules
            1. Hallo,

              Beispiel phpMyAdmin
              dort kann man mehrere Datensätze per Ceckboxen auswählen
              dort nennen sie die Cechbox z.B. "rows_to_delete[+%60_eigenschaft_id%60+%3D+1]"
              wenn das Formular abgeschickt wird, steht dann $_POST['rows_to_delete'][...] zur Verfügung

              Und? Dass PHP Array-ähnliche Zeichen automatisch in ein Array konvertiert, ist bekannt.

              Was hat das mit JavaScript zu tun?

              na nichts, das habe ich auch nicht behauptet :-)
              wenn hat das hächstens etwas mit HTML zu tun

              ich frage mich trotzdem, wie man das lösen kann, damit es wohlgeformtes HTML ist ;)

              mfg
              Twilo

              1. Hallo Twilo.

                ich frage mich trotzdem, wie man das lösen kann, damit es wohlgeformtes HTML ist ;)

                In HTML gibt es so etwas wie „Wohlgeformtheit“ nicht; dies ist eine Eigenschaft von XML und seinen Derivaten.

                Und was genau meinst du nun? Wie du per JS auf das Formularfeld zugreifen kannst, weißt du ja nun schon.

                Einen schönen Sonntag noch.

                Gruß, Mathias

                --
                sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                debian/rules