- ベストアンサー
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>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
// 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+"点です"); }
その他の回答 (1)
- mousengoke
- ベストアンサー率50% (197/388)
>「ページでエラーが発生しました」 >という表示がステータスバーにでます。 まずこの原因ですが単純に関数を閉じ忘れています。 >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); の様にしてみてください。
お礼
ありがとうございます。 大変参考になりました。
お礼
できました。 基本的なミスと致命的なミスをしていました。 ありがとうございます。 身震いするほど感激しています。