Formular-Feld zur Laufzeit mit Namen ansprechen
Markus Möller
- javascript
Hallo zusammen!
Ich möchte mit einer JavaScript-Funktion Formularfelder ansprechen:
Der Name des Feldes wird aber erst zur Laufzeit als Parameter übergeben. Also in etwa soetwas:
function checkField (fieldname)
Wie kann ich nun das Feld ansprechen, also einen Wert zuweisen?
Ich hab's schon mit eval versucht, also so:
eval("document.detailform." + field + ".value")="blabla";
Das gibt aber die folgenden Meldungen:
Warnung: function eval must be called directly, and not by way of a function of another name.
Fehler: invalid assignment left-hand side
Wer kann mir da weiterhelfen?
Danke im Vorraus!
P.S: Natürlich gäbe es die Möglichkeit, anstatt des Feldnamens den Index zu übergeben. Dies gestalltet sich in meiner Anwendung aber sehr schwierig, wenn nicht sogar unmöglich.
Hoi,
function checkField (fieldname)
Warum uebergibst du keine Referenz auf das Feld?
Wie kann ich nun das Feld ansprechen, also einen Wert zuweisen?
Ich hab's schon mit eval versucht, also so:
eval("document.detailform." + field + ".value")="blabla";`
document.forms["detailform"][field].value
oder
document.forms.detailform[field].value
oder
document.forms.detailform.elements[field].value
oder, oder, oder...
Das gibt aber die folgenden Meldungen:
Warnung: function eval must be called directly, and not by way
of a function of another name.
Fehler: invalid assignment left-hand side
Kein Wunder.
Gruesse,
CK
Hallo und Danke
document.forms.detailform.elements[field].value
Ja, das hatte ich in SELFHTML gesucht. Da steht das aber leider nicht.
Na ja, jetzt läuft's ja.
Vielen Dank!
Wie kann ich nun das Feld ansprechen, also einen Wert zuweisen?
Ich hab's schon mit eval versucht, also so:
eval("document.detailform." + field + ".value")="blabla";
Vorab:
Die Versionen von Markus sind besser. Aber wenns wirklich eval() sein muss dann alles ins eval() schreiben. Also:
eval("document.detailform." + field + ".value='blabla");
oder
eval("document.detailform." + field + ".value='" + varName + "'");
o.ä.
Reinhard