Mam problem z uzyskaniem dostępu do mojego formularza po jego nazwie. Kiedy używam document.form [0] .mylink.value, rozpoznaje on wartość i dane wyjściowe do podanego przeze mnie innerHTML. Jednak, gdy używam document.myform.mylink.value, wydaje się, że nie rozpoznaje formularza. Próbowałem tego w chrome 6.0, a także firefox 3.6.3 i uzyskać taki sam wynik w obu. Naprawdę potrzebuję móc uzyskać dostęp do wartości formularza za pomocą nazwy formularza (zamiast document.form [0]), wszelkie pomysły, dlaczego document.myform.mylink.value nie działa?Nie można uzyskać elementów formularza za pomocą nazwy formularza w javascript
<form name="myform">
<table>
<tr><td valign="middle" align="center">
<div id="textResponse"></div>
</td></tr>
<tr><td height="30" valign="middle" align="center">
<input name="mylink" value="Enter a URL" size="31" />
</td></tr>
<tr><td valign="top" align="center">
<a href="javascript:submitForm2();">Click</a>
</td></tr>
</table>
</form>
<script type="text/javascript">
function submitForm2(){
//This one does NOT work:
my_link = document.myform.mylink.value;
//This one also does NOT work:
//my_link = document.forms['myform'].mylink.value;
//This one works:
//my_link = document.forms[0].mylink.value;
document.getElementById("textResponse").innerHTML="<p>"+my_link+"</p>";
}
</script>
Kod z pewnością nie jest XHTML (Transitional) ważny. 'action' jest wymaganym atrybutem dla elementów' form'. Powinien być przynajmniej ustawiony, nawet jeśli jest pusty. – Lekensteyn
Trochę się spóźniłem, ale powodem, dla którego nie działa, może być brak atrybutu "typ". Domyślnie wiem, że jest to tekst, ale nie jestem pewien, czy to rzeczywiście obowiązkowe. –