Da ich aber nicht wirklich Ahnung von Javascript habe, verwirrt das
document.forms["Formularname"].elements["Elementname"].Eigenschaft
>
> „.Eigenschaft“ ein wenig.
objekt.eigenschaft heißt natürlich, dass objekt und eigenschaft Platzhalter für Bezeichner sind.
Es gibt zwei Möglichkeiten, um in JavaScript Unterobjekte (auch Member oder spezieller Methoden bzw. Eigenschaften genannt) anzusprechen:
objekt.unterobjekt
objekt["unterobjekt"]
Beim ersten ist unterobjekt immer ein fester Bezeichner, beim zweiten wird zwischen den eckigen Klammern ein Ausdruck erwartet, der einen String ergibt - bzw. es wird einfach ein beliebiger Ausdruck erwartet, der wird dann ausgerechnet und das Ergebnis automatisch in einen String umgewandelt.
Jetzt musst du den Unterschied beachten zwischen:
1\. einem Bezeichner (Identifier), der direkt im Quellcode notiert ist
2\. einem String-Literal, der direkt im Quellcode notiert ist
3\. einem Bezeichner, der auf eine String-Variable verweist, die einen Bezeichnernamen enthält
Beispiel 1.
document.forms
Komplexer:
document.forms.bla.elements.blub.type
bla und blub sind hier natürlich feste Namen. Bei der Schreibweise objekt.eigenschaft ist das immer so und muss immer so sein.
Beispiel 2.
document.forms["bla"].elements["blub"].type
Zwischen den eckigen Klammern ist ein String-Literal im Quelltext notiert. Dabei sind die Namen ebenfalls fest, nur anders notiert.
Beispiel 3.
var formularname = "bla", feldname = "blub";
document.forms[formularname].elements[feldname].type
Wie gesagt kann zwischen den Klammern ein beliebiger Ausdruck stehen, der ein String ergibt, also schreiben wir einen Variablennamen dazwischen. Der wird dann aufgelöst zu seinem Wert - und das ist ein String.
Die zweite Zeile ist dadurch variabel - was sie ergibt, hängt davon ab, welche Werte in den verwendeten Variablen gespeichert sind.
Mathias
--
[JavaScript-Erweiterung für das SELFHTML-Forum](http://forum.de.selfhtml.org/js/doku/)