• ベストアンサー

JavaScript for文の処理

JavaScriptでクイズの採点をしたいと思っています。 ↓のスクリプトを書いたのですが 「ページでエラーが発生しました」 という表示がステータスバーにでます。 二問とも一番下の選択肢を選んだ場合 「2点です」とアラートに表示させたいのですがどうしても、うまくいきません。 おそらくfor文内の score + document.myFORM.elements[i].value; このへんがおかしいのだと思うのですが。 どなたか修正方法をお願いします。 <HTML> <HEAD> <script Language="JavaScript"><!-- function GetScore(){ score = 0; for (i=0; i<6; i++) if (document.myFORM.elements[i].checked) score + document.myFORM.elements[i].value; alert(score+"点です"); // --></script> </HEAD> <BODY> <FORM name="myFORM">第一問:あなたは? <BR> <INPUT TYPE="RADIO" NAME="q1" ID="r1"VALUE="0"> <LABEL FOR="r1">引きこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q1" ID="r2" VALUE="1"><LABEL FOR="r2">立てこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q1" ID="r3" VALUE="1"><LABEL FOR="r3">生き残り</LABEL> <BR><BR> 第二問:あなたは? <BR> <INPUT TYPE="RADIO" NAME="q2" ID="r2_1" VALUE="0"><LABEL FOR="r2_1">引きこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q2" ID="r2_2" VALUE="0"><LABEL FOR="r2_2">立てこもり</LABEL> <BR> <INPUT TYPE="RADIO" NAME="q2" ID="r2_3" VALUE="1"><LABEL FOR="r2_3">オタク</LABEL> <BR><BR> <input type="button" value="採点する" onClick="GetScore()"> </FORM> </BODY></HTML>

質問者が選んだベストアンサー

  • ベストアンサー
noname#12943
noname#12943
回答No.1

// function GetScoreを下のスクリプトにしてみてください。 //質問文のでは、カッコが足りなかったりします。 function GetScore(){ score = 0; for (i=0; i<6; i++) { if (document.myFORM.elements[i].checked){ score += parseInt(document.myFORM.elements[i].value); } } alert(score+"点です"); }

hikiko
質問者

お礼

できました。 基本的なミスと致命的なミスをしていました。 ありがとうございます。 身震いするほど感激しています。

その他の回答 (1)

回答No.2

>「ページでエラーが発生しました」 >という表示がステータスバーにでます。 まずこの原因ですが単純に関数を閉じ忘れています。 >alert(score+"点です"); の後に } を付け足してください。 多分このままでも想定した動作にならないと思います。 >score + document.myFORM.elements[i].value; の部分を score = score + document.myFORM.elements[i].value; 又は score += document.myFORM.elements[i].value; とするのですがまだちょっと違うようですね。 これについては 例えば score += Number(document.myFORM.elements[i].value); の様にしてみてください。

hikiko
質問者

お礼

ありがとうございます。 大変参考になりました。

関連するQ&A