im aktuellen Formular ein Wert auslesen
Twilo
- javascript
Hallo,
ich möchte, wenn ich bei ein Link per onclick den Wert eines Elements auslesen.
<a href="#" onclick="alert(this.form.test.value);">test</a>
wenn ich es jedoch wie folgt löse, erhalte ich den Wert
<input type="button" value="test" onclick="alert(this.form.test.value)">
das Dokument hat mehrere Formulare - ich möchte in jeden Formular auf das aktuelle zugreifen.
mfg
Twilo
das Dokument hat mehrere Formulare - ich möchte in jeden Formular auf das aktuelle zugreifen.
Du musst das aktuelle Formular eben in einer Variablen speichern. Wenn ein neues Formular 'betreten' wird musst du die Variable entsprechend ändern. Ein Tipp onfocus, könnte helfen.
Michael Wille
Hallo,
das Dokument hat mehrere Formulare - ich möchte in jeden Formular auf das aktuelle zugreifen.
Das ist nicht so einfach. Ein Link ist nicht Teil eines Formulars und deshalb hat das a-Elementobjekt auch keine Eigenschaft form, die auf das zugehörige Formular verweist.
»Das Formular, indem sich der Link befindet« musst du erst über das DOM suchen, indem du vom a-Elementobjekt ausgehend im DOM-Baum nach oben aufsteigst, bis du ein form-Element gefunden hast.
Das geht mit der Eigenschaft parentNode und einer Schleife, die läuft, bis es ein Element mit dem richtigen tagName gefunden hat.
Vom Prinzip her:
function sucheFormular (aElement) {
var elem = aElement;
do {
elem = elem.parentNode;
} while (elem.tagName != "form");
alert("Formularelement gefunden!\n" + elem);
alert(elem.elements.test.value);
}
<a onclick="sucheFormular(this)">...</a>
Mathias
Hallo,
function sucheFormular (aElement) {
var elem = aElement;
do {
elem = elem.parentNode;
} while (elem.tagName != "form");
alert("Formularelement gefunden!\n" + elem);
alert(elem.elements.test.value);
}
>
> <a onclick="sucheFormular(this)">...</a>
ich erhalte die Meldung
> Fehler: elem has no properties
> Quelldatei: http://localhost:7890/:members\_old.html#
> Zeile: 29
Zeile 29 ist folgende
> } while (elem.tagName != "form");
mfg
Twilo
--
[Farbtabelle](http://www.farb-tabelle.de)
Hallo,
Der ungetestete Beispielcode sollte dir das Prinzip einer möglichen Umsetzung erklären. Das kannst du nachvollziehen und mit dem Code als Arbeitsgrundlage weiterarbeiten. Es war kein Fertigcode, weil das hier das SELFHTML-Forum ist und Mitdenken angesagt ist.
tagName liefert die Tag-Namen in Großbuchstaben, daher trifft != "form" nie zu, es müsste != "FORM" heißen. Das wäre schnell aufgefallen, wenn du wie beschrieben vorgegangen wärest... Aber der Herr möchte die Sau mit Apfel im Maul auf dem Silbertablett. ;)
Mathias
Hallo,
Der ungetestete Beispielcode sollte dir das Prinzip einer möglichen Umsetzung erklären. Das kannst du nachvollziehen und mit dem Code als Arbeitsgrundlage weiterarbeiten. Es war kein Fertigcode, weil das hier das SELFHTML-Forum ist und Mitdenken angesagt ist.
tagName liefert die Tag-Namen in Großbuchstaben, daher trifft != "form" nie zu, es müsste != "FORM" heißen. Das wäre schnell aufgefallen, wenn du wie beschrieben vorgegangen wärest... Aber der Herr möchte die Sau mit Apfel im Maul auf dem Silbertablett. ;)
ich hatte in SelfHTML (tagName) nachgeschaut - da steht leider nicht, dass der Name in grossbuchstaben zurückgegeben wird.
Das Beispiel hatte ich dort nicht ausgeführt - dann wäre mir das sicherlich aufgefallen :-\
mfg
Twilo
Hi,
ich erhalte die Meldung
Fehler: elem has no properties
Quelldatei: http://localhost:7890/:members_old.html#
Zeile: 29
Und du hast, wie von Mathias gezeigt, das A-Element beim Aufruf der Funktion als Parameter uebergeben?
Btw: Eine zusaetzliche lokale Variable braucht's an der Stelle m.E. nicht, man kann auch gleich vom jeweils aktuellen aElement auf dessen parentNode gehen - aElement enthaelt schliesslich lediglich eine Referenz, die beliebig auf was anderes gesetzt werden kann.
MfG ChrisB
Hallo,
Und du hast, wie von Mathias gezeigt, das A-Element beim Aufruf der Funktion als Parameter uebergeben?
ja, das Problem war, dass der tagName in Grossbuchstaben zurückgegeben wird.
Btw: Eine zusaetzliche lokale Variable braucht's an der Stelle m.E. nicht, man kann auch gleich vom jeweils aktuellen aElement auf dessen parentNode gehen - aElement enthaelt schliesslich lediglich eine Referenz, die beliebig auf was anderes gesetzt werden kann.
das war das erste, was ich geändert hatte :-)
mfg
Twilo