Formularname herausfinden per event?

Jerinca

Erfahrenes Mitglied
Hallo allerseits!

Habe wieder mal eine Spezi-Frage: Es geht um event.srcElement.

Wenn ein Steuerelement (Button, Textfeld o.ä. über EventHandler) eine Funktion aufruft und gleichzeitig "event" übergeben wird, dann läßt sich über event.srcElement.name herausfinden, wie das Steuerelement heißt, daß die Funktion aufgerufen hat.

Bsp.: Funktion, die überprüft, ob eine Zahl eingegeben worden ist. Die Funktion ist aber nicht wichtig, sondern die Fallunterscheidung; die wichtigen Stellen sind fett markiert!
Code:
function zahl(e) {
	var zahl;
	switch(event.srcElement.name) {
		case "FT_anzahl":
			zahl = document.form3b.FT_anzahl;
			break;
		case "FT_zeit":
			zahl = document.form3b.FT_zeit;
			break;
		}	
			for (var i = 0; i < zahl.value.length; i++) {
			var z = zahl.value.substring(i, i + 1);
			if (z < "0" || "9" < z)  {
				var zahl2 = zahl.value.substring(0, zahl.value.length-1);
				zahl.value = zahl2;
				zahl.focus();
				return false;
				}
		}
}

Hier beispielhaft ein Aufruf:
<input type="text" name="FT_zeit" value="" onKeyUp="zahl(event)">
Meine Frage nun: Gibt es eine Möglichkeit, wie ich nicht den Namen des Steuerelements herausfinden kann, sondern den Namen des Formulars, in dem das Steuerelement liegt?

Also wenn ich von obigen Beispiel nicht "FT_zeit" oder "FT_anzahl" wissen will, sondern in diesem Fall "form3b"?

Gibt es sowas wie event.srcElement.formname?

Danke schonmal für Eure Hilfe!

Gruß, Jerinca
 
Hi,

Spontan: es gibt zumindest die Eigenschaft "form", über die Du eine Objektreferenz auf das Formular bekommst:
HTML:
var myform = myTextField.form;


Gruß
.
 
Zurück