getElementsByName-Methode ?
Henry
- dhtml
Hallo,
zum Testen der getElementsByName-Methode mit dem IE5 habe ich folgende Zeilen geschrieben:
<html>
<head>
<title>Test</title>
<script>
function showInput()
{ alert(document.Testform.TestInput.value);
alert(document.getElementsByName("TestInput").value);
return false; }
</script>
</head>
<body>
<form name="Testform" onSubmit="return showInput()">
<input type=text name="TestInput" value="Test">
<input type=submit value="Absenden">
</form>
</body>
</html>
Während das erst "alert" den korrekten Wert ausgibt, erhalte ich im zweitem Fall immer ein "undefined". Wo liegt der Fehler?
Gruß Henry
Während das erst "alert" den korrekten Wert ausgibt, erhalte ich im zweitem Fall immer ein "undefined". Wo liegt der Fehler?
Gruß Henry
Hallo Henry!
Durch document.getElementsByName() wird ein Array erzeugt, welches auch als solches abgefragt werden muss, also so:
function showInput()
{ alert(document.Testform.TestInput.value);
MeinText = document.getElementsByName("TestInput");
alert(MeinText[0].value);
return false; }
So wird es funktionieren.
Bis dann
Alex
Hallo,
danke für die Hilfe! Hätte ich eigentlich auch selber drauf kommen können?!
Gruß Henry
Während das erst "alert" den korrekten Wert ausgibt, erhalte ich im zweitem Fall immer ein "undefined". Wo liegt der Fehler?
Gruß Henry
»» alert(document.getElementsByName("TestInput").value);
Du referenzierst damit die Collection der Elemente mit dem Namen "TestInput" in der Reihenfolge ihres Auftretens. Das erste Element hat den Index 0:
alert(document.getElementsByName("TestInput")[0].value);
Eine Alternative - und fuer die DHTML-Programmierung oft praktischer - ist die Verwendung von getElementById(), denn hier werden die einzelnen Seitenelemente ueber die vergebenen IDs referenziert:
Im Markup:
<input type="text" id="TestInput" value="Test">
Im Script:
alert(document.getElementById("TestInput").value);
Eine weitere Zugriffsmoeglichkeit eroeffnet document.getElementsByTagName(), wobei die Elemente ueber ihre Tagnamen und Anzahl ab 0 angesprochen werden (also ohne Angabe von Name bzw. ID):
Im Markup:
<input type="text" value="Test">
Im Script:
alert(document.getElementsByTagName("input")[0].value);
In allen 3 Beispielen wird jeweils der Wert "Test" ausgegeben.
BTW: Beachte die Schreibweisen "getElementBy..." und "getElementsBy...".
HTH & Gruss, Thomas