Übergabe mit onClick
Patrick Klein
- javascript
Hi Forum,
ich habe einen OSCommerce Shop installiert und möchte gerne verschiedene Buttons einfügen, um eine Schnellauswahl für ein textarea zu realisieren.
Also im Hintergrund die Daten auf die Buttons legen und per Klick diese in das textarea einfügen.
Nun habe ich diesen Schnipsel genommen:
<input type="button" value="Letzter Update"
onClick="this.form.products_description[2].value=document.lastModified">
LastModified ist nur zum Testen, klar.
Was mir Probleme macht, ist das Einfügen in die textarea, wie Ihr seht, heisst diese products_description[2].
Dieser Name ist leider nicht änderbar, aber mein Script übernimmt leider auch die Änderung nicht.
Habt Ihr eine Idee?
Vielen Dank
Patrick
Hallo,
Was mir Probleme macht, ist das Einfügen in die textarea, wie Ihr seht, heisst diese products_description[2].
Dieser Name ist leider nicht änderbar, aber mein Script übernimmt leider auch die Änderung nicht.
Das HTMLElement FORM hat eine HTMLCollection elements. Diese enthält alle Formular-Elemente. Die HTMLCollection ist, wenn man die Namen ihrer Mitglieder verwenden will, wie folgt ansprechbar:
..form.elements["elementname"]
..form.elements.namedItem("elementname")
..form.elementname
ist nur eine verkürzte Schreibweise hierfür.
<input type="button" value="Letzter Update" onClick="this.form.elements["products_description[2]"].value=document.lastModified">
viele Grüße
Axel
Hi Axel,
erst mal Danke für deine Hilfe.
Aber du hattest einen klitzekleinen Fehler drin:
Statt: ..form.elements["elementname"]
muss es so heissen : ..form.elements['elementname']
Es sind einfache Anführungszeichen notwendig.
Vielen Dank trotzdem
Patrick
Hallo,
erst mal Danke für deine Hilfe.
Aber du hattest einen klitzekleinen Fehler drin:
Es sind einfache Anführungszeichen notwendig.
nicht immer
Hier:
<input type="button" value="Letzter Update" onClick="this.form.elements['products_description[2]'].value=document.lastModified">
ja, weil der Attributwert von onclick schon in Double-Quotes steht.
Es ginge aber auch so:
<input type="button" value="Letzter Update" onClick="this.form.elements["products_description[2]"].value=document.lastModified">
viele Grüße
Axel
Moin!
Es ginge aber auch so:
<input type="button" value="Letzter Update" onClick="this.form.elements["products_description[2]"].value=document.lastModified">
Ganz bestimmt nicht. Es gibt in HTML kein Escape-Zeichen. Also wird der Parser am weiterhin am zweiten doppelten Anführungszeichen abbrechen - vor dem als letztes Zeichen ein Backslash steht.
- Sven Rautenberg
Hallo,
Es ginge aber auch so:
<input type="button" value="Letzter Update" onClick="this.form.elements["products_description[2]"].value=document.lastModified">Ganz bestimmt nicht. Es gibt in HTML kein Escape-Zeichen. Also wird der Parser am weiterhin am zweiten doppelten Anführungszeichen abbrechen - vor dem als letztes Zeichen ein Backslash steht.
Ja, da hatte ich mich vergaloppiert. Meine Überlegung war, dass als Inhalt des onclick-Attributes ja %Script vorgeschrieben ist. Allerdings muss der Parser ja _vor_ der Interpretation der %Script-Daten das Ende des Attribut-Inhaltes feststellen.
Um die Quotation-Verwirrung aufzuheben und in anderen Attribut-Werten, welche ebenfalls CDATA enthalten (action im FORM-Element z.B.), die Unterscheidung zwischen & als Beginn einer Entity-Referenz und dem Zeichen "&" zu ermöglichen, sind in CDATA character references erlaubt. [http://www.w3.org/TR/html4/types.html#type-cdata] Ausnahmen sind SCRIPT- und STYLE-Elemente.
Es ginge also auch so:
<input type="button" value="Letzter Update" onclick="this.form.elements["products_description[2]"].value=document.lastModified">
viele Grüße ;-))
Axel
Moin!
Aber du hattest einen klitzekleinen Fehler drin:
Statt: ..form.elements["elementname"]
muss es so heissen : ..form.elements['elementname']Es sind einfache Anführungszeichen notwendig.
Nein, grundsätzlich sind die Anführungszeichen egal. Aber wenn man außen für das onclick doppelte Anführungszeichen hat, darf man im Javascript-Code darin keine doppelten Anführungszeichen mehr nehmen, weil das HTML sonst durcheinanderkommt.
Man kann, wenn man innen doppelte Anführungszeichen benutzen will, außen auch einfache Anführungszeichen verwenden.
- Sven Rautenberg