document.forms...
lutz
- javascript
0 Felix Riesterer0 lutz
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
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.
Hi Feltix
Danke für deine schnelle und sehr ausführliche Hilfe!
gruß
Lutz
Lieber Lutz,
Hi Feltix
meintest Du mich? ;-)
Liebe Grüße aus Ellwangen,
Felix Riesterer.
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
so wie document.frames[var]...
äääh...
ich mein natürlich
document.forms[var]...
sorry...