Axel Richter: form - js-zugriff auf input type image element

Beitrag lesen

Hallo,

<form name="test">
<input type="image" name="testinput" src="pussy" />
</form>

<script language="javascript" type="text/javascript">
alert(document.test.testinput);
alert(document.forms['test'].testinput);
</script>

nichts davon geht. immer undefined. nehme ich allerdings ein type="input" oder type="text", geht es ??

Ja, das ist wohl so. Ein INPUT.type="image" ist in keinem Browser in der HTMLCollection elements zu finden. Ich würde darin einen Fehler der Browser-DOM-Implementation sehen.

Allerdings braucht man Deine komplizierte Funktion nun auch wieder nicht:

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
        "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
<title>Titel</title>  
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
</head>  
<body>  
  
<form action="#" name="test">  
<p><input type="text" name="t1" value="Test" size="10" maxlength="10"></p>  
<p><input type="submit" name="ok" value="OK"></p>  
<p><input type="image" name="testinput" src="pussy" alt="Katze" title=""></p>  
</form>  
  
<script type="text/javascript">  
for (var i=0; i<document.forms["test"].elements.length; i++)  
 document.write(document.forms["test"].elements[i].type + " " +document.forms["test"].elements[i].name + "<br>")  
  
//ein INPUT.type="image" ist in keinem Browser in der HTMLCollection elements zu finden:  
alert(document.forms["test"].elements["testinput"]);  
  
//aber so kann man es erreichen:  
alert(document.forms["test"].getElementsByTagName("INPUT")["testinput"].name);  
</script>  
  
</body>  
</html>  

viele Grüße

Axel