2016-11-20 2 views
-5

私は学校でこのプロジェクトを開始しました。私はあなたがコードから見ることができるようにJavaScriptの初心者です、そして、私はちょっと固まっています。まず第一に、答える質問の量を紹介し、その後に答える必要のあるクイズを作りたいと思います。初めに私は無作為の答えで7つの質問を選んでテストしました。問題は3つ以下の質問を導入してもうまくいきますが、もっとうまく行くと(+3 < = 7)、奇妙なエラーが出ます:index.html?fname = 3:103 Uncaught TypeError:読み込めません定義されていない(...)のプロパティ 'checked'。ここに私のコードは次のとおりです。Javascript/Htmlチェックボックスエラー

My code

私の愚かさであなたをdistrubingため申し訳ありませんイム!良い一日を! PS:私はこのコードがまだ完成していないことを忘れています(私はまだそれをスタイルする必要があります)。

+0

こんにちはCiocirlan、Welcome to StackOverflow。質問に関連するコードのスニペットを入力してください。外部リンクのコードが期限切れになり、同様の問題が発生している他のスタックユーザーにとってスレッドが役に立たなくなります。乾杯。 –

+0

私はスタックを使い始めました。私の知っている、私の悪い。私はこのサイトの仕組みを学びます。 –

答えて

0

コードの68行目で、yをユーザーが要求した質問の数に設定します。エラーがどこから来ている

y=document.getElementById("myForm").elements[0].value; 

このループ(ライン102から始まる)は次のとおりです。

for(var i=0; i<y; i++){ 
    if(choices[i].checked){ 
     choice = choices[i].value; 
    } 
} 

ここで何が起こるかです:あなたは4つの質問を求める場合は、このループはi限り実行し続けますiが3の場合、ifステートメントはchoices[3].checkedにアクセスしようとしています。インデックスは0から始まるので、choices[3]は実際には配列の4番目のアイテムであることを忘れないでください。各質問には3つの選択肢しかないので、4番目の質問にはundefinedが必要です。

しかし、合計でいくつの質問があるかにかかわらず、このループでは3回、それぞれの質問に対しては3回だけ回答します。あなたが書いたのはおそらく次のとおりです。

for(var i=0; i<3; i++){ 
    if(choices[i].checked){ 
     choice = choices[i].value; 
    } 
}