Formname als Objekt oder als String?
PaXy
- javascript
Ich habe zwei verschiedene HTML-Seiten, die jeweils ein Formular enthalten.
Drückt der Benutzer auf eine der beiden Seiten einen Button, wird eine Javascript-Methode aufgerufen, der mit "this.form.name" der Name des Formulars übergeben wird.
Wird die JS-Methode von der einen HTML-Seite aufgerufen, wird der korrekte Formularname ausgegeben, so wie es sein soll. Wird die JS-Methode von der zweiten HTML-Seite aufgerufen bekomme ich allerdings ein HTML-Objekt "[object HTMLInputElement]".
Wovon ist es abhängig, das ich bei der Übergabe von "this.form.name" einmal einen String bekomme und einmal ein Objekt?
Hi,
Drückt der Benutzer auf eine der beiden Seiten einen Button, wird eine Javascript-Methode aufgerufen, der mit "this.form.name" der Name des Formulars übergeben wird.
ah, die Funktion benötigt also nur den Namen, nicht das Formular. Darf ich fragen, was sie macht?
Wird die JS-Methode von der zweiten HTML-Seite aufgerufen bekomme ich allerdings ein HTML-Objekt "[object HTMLInputElement]".
Dann hast Du wohl ein HTML-<input>-Element namens "name" in dem Formular untergebracht.
Wovon ist es abhängig, das ich bei der Übergabe von "this.form.name" einmal einen String bekomme und einmal ein Objekt?
Davon, in welcher Reihenfolge die Eigenschaften von Objekten aus den diversen Quellen befüllt werden. Was übrigens einer der Gründe ist, warum der IE mit seiner document.all-Philosophie ein *ziemlich* kaputtes Modell besitzt.
Cheatah
Hallo,
Wovon ist es abhängig, das ich bei der Übergabe von "this.form.name" einmal einen String bekomme und einmal ein Objekt?
Vermutlich, wie Cheatah sagte, wird es einmal zu einem
this.form.getAttribute("name")
aufgelöst, das andere mal zu:
this.form.elements.name
Das verdeutlicht dir auch, wie du eine Eindeutigkeit schaffen kannst.
(Am besten nutzt du übrigens das id-Attribut.)
Mathias