2012-04-10 3 views
0

Это моя попытка создать страницу регистрации, но после того, как цикл for не следует, и я не понимаю, почему? Ниже Javascript код и формаПочему код JavaScript останавливается после цикла for

<script type='text/javascript'> 
myArray = ['username','email','password','password2']; 
reply = ['User Name','Email','Password','Password Again']; 
message = "Please Type you're "; 
start = "<font color = red size='-1'>"; 
end = "</font>"; 
test = 10; 
obj = validate(); 
alert (obj); 
function validate(){ 

for (var i=0; i<=myArray.length; i++) { 
       if (document.getElementById("in"+myArray[i]).value == "") 
       { 
        document.getElementById(myArray[i]).innerHTML = start+message+reply[i]+end; 
        test = 30; 
       } 
       } 
alert ("test"); 
} 

<form action="echo.php" method="post" name="register" onsubmit="return validate();"> 
<table> 
    <tr> 
     <td width="185"><font size="2">First Name</font></td> 
     <td width="499"> 
     <input id = "infirst_name" name="first_name" type="text" /><div id="first_name"></div></td> 
    </tr> 
    <tr> 
     <td><font size="2">Last Name</font></td> 
     <td><input id = "inlast_name" name="last_name" type="text" /><div id="last_name"></font></div></td> 
    </tr> 
    <tr> 
     <td><font size="2">Username*</font></td> 
     <td> 
     <input id = "inusername" name="username" type="text" /><div id="username"></div></td> 
    </tr> 
    <tr> 
     <td><font size="2">Email*</font></td> 
     <td><input id = "inemail" name="email" type="text" /><div id="email"></div></td> 
    </tr> 
    <tr> 
     <td><font size="2">Password*</font></td> 
     <td><input id = "inpassword" name="password" type="password" /><div id="password"></div></td> 
    </tr> 
    <tr> 
     <td><font size="2">Repeat Password*</font></td> 
     <td> 
     <input id = "inpassword2" name="password2" type="password" /><div id="password2"></div></td> 
    </tr> 
    <tr> 
    <tr> 
     <td><font size="2">I have read and Agree to the Terms and Conditions</font></td> 
     <td> 
     <input id = "incheckme" name="checkme" type="checkbox" /><div id="checkme"></div></td> 
    </tr> 
    <tr> 
     <td><input type="submit" value="Register" /></td> 
     <td>&nbsp;</td> 
    </tr> 
    </table> 
</form> 
+0

Вы проверили консоль ошибок javascript? – DCoder

+0

Любые сообщения об ошибках? –

ответ

5

Постарайтесь фиксируя свой цикл:

for (var i=0; i < myArray.length; i++) { 

JavaScript остановит ничего выполнение, если он встречает неперехваченную ошибку. В вашем случае кажется, что вы зациклились за последним элементом (и попытались установить innerHTML на неопределенный объект).

2

Скорее всего, потому что вы итерацию мимо конца массива, но ссылаться на него, как там что-то есть.

1

См. Вывод консоли JS: возможно, он говорит, что у вас есть ошибка. i выпадает из myArray длина: изменить условие цикла от "i < =" до "i <", и все будет в порядке.

Смежные вопросы