2012-04-10 9 views
0

これは私の登録ページを作成しようとしていますが、forループの後に実行されないものは何故ですか?あなたは、配列の末尾を超えて反復処理しますが、そこに何かがありますようにそれを参照するための下 はjavascriptのコードとフォームforループの後でJavaScriptコードが実行を停止する理由

<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 <"に変更すると、問題ありません。

関連する問題