Christopher: element will nicht angesprochen werden

hallo ihr dort,
kann mir einer von euch vielleicht weiterhelfen - ich dreh langsam am rad.. unten ist der quelltext.. WARUM nimmt keine der variablen den wert des input-feldes an ?

<HTML><HEAD><TITLE>Titel</TITLE>

<script type="text/javascript" language="JavaScript">
 a = document.forms['TESTform'].elements['in_name'].value;
 b = document.getElementById("in_id").value;
 c = document.getElementsByName("in_name")[0].value;
 d = document.getElementsByTagName("input")[0].value;
 e = document.TESTform.in_name.value;
</script>
</HEAD>
<BODY>

<form name=TESTform>
<input type="text" name="in_name" id="in_id" value="in_value">
</form>

</BODY>
</HTML>

ich bin mittlerweile erblindet. ;)
besten dank für jegliche denkanstöße..

mfg
christopher

  1. Hallo Christopher,

    <HTML><HEAD><TITLE>Titel</TITLE>

    <script type="text/javascript" language="JavaScript">
     a = document.forms['TESTform'].elements['in_name'].value;
     b = document.getElementById("in_id").value;
     c = document.getElementsByName("in_name")[0].value;
     d = document.getElementsByTagName("input")[0].value;
     e = document.TESTform.in_name.value;
    </script>
    </HEAD>
    <BODY>

    <form name=TESTform>
    <input type="text" name="in_name" id="in_id" value="in_value">
    </form>

    </BODY>
    </HTML>

    Dein JavaScript wird beim Laden des Dokumentes ausgeführt. Zu diesem Zeitpunkt ist das Eingabefeld leer, und somit steht auch nichts in deinen Variablen.
    Du solltest Deine JavaScript-Anweisungen in eine Funktion packen, die Du bei einem bestimmten Ereignis (Event) aufrufst. (z.B. Beim Abschicken des Formulars [onSubmit]).
    Dann sollte zumindestens eine deiner Zuweisungen funktionieren ;)

    Gruß
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
    1. ...das wirds sein

      thx

    2. Hallo,

      <input type="text" name="in_name" id="in_id" value="in_value">

      wieso leer?  da steht doch "in_value" drin.

      Mit freundlichen Grüßen,
      Andreas Waidelich

      --
      signatures eat bandwidth
      1. prob gelöst.
        das javascript wurde ausgeführt, bevor das feld gefüllt wurde..
        thx

        1. prob gelöst.
          das javascript wurde ausgeführt, bevor das feld gefüllt wurde..
          thx

          Nein!

          Das ist wie bei der Division durch Null:

          Es existiert noch gar nicht. Wie soll ich den Inhalt eines nicht existierenden Feldes abfragen? Das ist gegenüber "leer" ein sehr großer Unterschied.

          fastix®

      2. Hallo Andreas,

        <input type="text" name="in_name" id="in_id" value="in_value">
        wieso leer?  da steht doch "in_value" drin.

        Habe ich wohl übesrehen ;)
        Noch genauer:
        Zu dem Zeitpunkt an dem der JavaScript-Befehl ausgeführt wird, ist das Eingabefeld noch gar nicht geladen... also sozusagen doch leer! ;)

        Gruß
        Helmut Weber

        --
        -------------------------------------------
        Mode ist eine Variable, Stil eine Konstante
  2. Dein Script wird zu einem Zeitpunkt abgearbeitet, zu welchem das Formular noch gar nicht existiert.

    Versuch es mal so:

    <HTML><HEAD><TITLE>Titel</TITLE>

    <script type="text/javascript" language="JavaScript">

    function werte() {
     a = document.forms['TESTform'].elements['in_name'].value;
     b = document.getElementById("in_id").value;
     c = document.getElementsByName("in_name")[0].value;
     d = document.getElementsByTagName("input")[0].value;
     e = document.TESTform.in_name.value;

    alert(b);
    }
    </script>
    </HEAD>
    <BODY>

    <form name="TESTform" onload="werte()">
    <input type="text" name="in_name" id="in_id" value="in_value">
    </form>

    </BODY>
    </HTML>

    #############

    oder so:

    <HTML><HEAD><TITLE>Titel</TITLE>
    </HEAD>
    <BODY>

    <form name="TESTform" onload="werte()">
    <input type="text" name="in_name" id="in_id" value="in_value">
    </form>
    <script type="text/javascript" language="JavaScript">
     a = document.forms['TESTform'].elements['in_name'].value;
     b = document.getElementById("in_id").value;
     c = document.getElementsByName("in_name")[0].value;
     d = document.getElementsByTagName("input")[0].value;
     e = document.TESTform.in_name.value;
     alert(b);
    </script>

    </BODY>
    </HTML>

    1. besten dank..
      das feld muss dann ja doch schon erst gefüllt werden,
      bevor es ansprechbar ist..

      thx

  3. Ich weiß nicht was du hast, aber es tut doch!
    Hast du dir das mal ausgeben lassen?
    Ich habe nichts verändert (außer a auskommentiert, da das fehlerhaft ist). Habe nur nen Button hinzugefügt und ein paar alert()- Boxen.

    <HTML><HEAD><TITLE>Titel</TITLE>

    <script type="text/javascript" language="JavaScript">
    //a = document.forms['TESTform'].elements['in_name'].value;
    function Test()
    {
    b = document.getElementById("in_id").value;
    alert("b: "+b);
    c = document.getElementsByName("in_name")[0].value;
    alert("c: "+c);
    d = document.getElementsByTagName("input")[0].value;
    alert("d: "+d);
    e = document.TESTform.in_name.value;
    alert("e: "+e);
    }
    </script>
    </HEAD>
    <BODY>

    <form name=TESTform>
    <input type="text" name="in_name" id="in_id" value="Test"><br>
    <input type="button" value="Button" onClick="Test();">
    </form>

    </BODY>
    </HTML>