lutz: document.forms...

Hi

ich will nur ein textfeld eines formulares ansprechen.
Ich möchte es von einer variablen abhängig machen, die immer das nächste  textfeld anspricht.

so wie document.frames[var]...
aber eben nur für input.
wie mach ich das?

grüße
Lutz

  1. Lieber lutz,

    nicht alle <input>s sind Text-Felder. Man wird sich also eine Sammlung dieser Felder herstellen müssen. Ich nehme dazu jetzt ein Array, in dem ich diese Textfelder sammle:

    textfelder = new Array(); // absichtlich als globale Variable (ohne das "var" davor) definiert  
                              // das ist nicht gut und sollte sinnvollerweise nur innerhalb der Funktion lokal,  
                              // oder aber in einem Objekt abgespeichert werden (siehe dazu [link:?t=148609@title=anderen aktuellen Thread])  
    var inputs = document.getElementsByTagName("input");  
    for (var i=0; i < inputs.length; i++)  
        if (inputs[i].type && inputs[i].type.toLowerCase() == "text")  
            textfelder[textfelder.length] = inputs[i];  
    // fertig! alle <input type="text" /> in "textfelder" gespeichert!  
    alert(textfelder.length + " Input-Texteingabefelder gefunden!");
    

    so wie document.frames[var]...
    aber eben nur für input.
    wie mach ich das?

    Jetzt mit textfelder[var].

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi Feltix

      Danke für deine schnelle und sehr ausführliche Hilfe!

      gruß
      Lutz

      1. Lieber Lutz,

        Hi Feltix

        meintest Du mich? ;-)

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. Hallo,

      textfelder = new Array(); // absichtlich als globale Variable (ohne das "var" davor) definiert

      Die solltest du IMHO lieber so deklarieren:

      window.textfelder = new Array();

      Das hat genau die Selbe Wirkung. Ist aber sauberer, weil so schneller sichtbar wird, dass man keine lokale Variable ändern, sondern eine globale erstellen will.

      Außerdem muss sich der Interpreter nicht erst hoch hangeln, sondern kann die Variable sofort erstellen (könnte also schneller sein [ungetestet]).

      mfg. Daniel

  2. so wie document.frames[var]...

    äääh...
    ich mein natürlich
    document.forms[var]...

    sorry...