Mam taki formularz:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Rejestracja</title>
<script type="text/javascript">
</script>
<script type="text/javascript" src="js/scripts.js"></script>
<link rel="stylesheet" type="text/css" href="css/layout.css" />
</head>
<body>
<form id="rejestracja" action="zarejestruj.php" method="POST">
Jakieś pole:<input type="text" name="jakies_pole" value="" />
Test 0:<input type="text" name="test_0" value="" />
Test 1:<input type="text" name="test_1" value="" />
<input type="button" value="Dodaj kolejnego uczestnika" onClick="dodaj_uczestnika()" />
<input type="button" value="Zlicz" onClick="zlicz()" />
</form>
</body>
</html>
oraz kod JS:
function zlicz()
{
var licznik = 0;
var form=document.getElementById('rejestracja');
var inputs=form.getElementsByTagName('input');
var ile=inputs.length;
//var ilosc_elementow = document.forms['rejestracja'].elements.length;
alert("ilosc elementów:"+ile);
for (var i = 0; i < ile; i++ )
{
if (inputs[i].name == "test_"+i)
{
licznik += 1;
}
}
alert("licznik="+licznik);
}
Problem polega na tym, że skrypt w ogóle nie zlicza pól o nazwie "test_0" oraz "test_1" w pętli.
Gdy podam nazwy na sztywno (bez użycia zmiennej "i"), to wtedy jest dobrze. Zauważyłem również, że jak usunę pierwsze pole "jakieś_pole", to jest OK. Czy ktoś potrafi powiedzieć czemu tak się dzieje i jak to poprawić?