• 締切済み

javascript 乱数が取得できない

はじめまして。 一月ほど前から「パズルネット ソフィア」 http://www.pori2.net/js/number/4.html というサイトでjavascriptの基礎を学んでいるのですが、乱数 を扱う段階になって自分の作成したプログラム(以下) <html> <head> </head> <body onload="Mondai()"> <form name="quiz"> <input type="text" value="" > <input type="button" value="赤" onclick="Push(0)"> <input type="button" value="青" onclick="Push(1)"> <input type="button" value="黄" onclick="Push(2)"> <input type="button" value="緑" onclick="Push(3)"> <input type="button" value="白" onclick="Push(4)"> </form> <script type="text/javascript"> <!-- var col=new Array("red","bleu","yellow","green","white"); var Rnd; function Mondai(){ Rnd=Math.floor(Math.random() * 5 ); document.quiz.element[0].value=col[Rnd]; } function Push(num){ var n=parseInt(num); if( n==Rnd ){ Mondai(); }else{ alert("違います。"); } } // --></script> </body> </html> を実行してもテキストボックス内に何の値も表示されず 、ボタンを押しても「違います。」とだけしか出てきません。 ブラウザはfirefoxを使用しており、javascriptの設定もonに なっています。 カンマや鍵括弧などの記号にも打ち間違いがないかサンプル プログラムを参考にしながら確認してみたのですが、どこにも おかしな点はありませんでした。 サンプルプログラムは下記のとおりで、こちらは正常に実行されます。 <body onload="Mondai()"> <form name="quiz"> <input type="text" value=""> <input type="button" value="赤" onclick="Push(0)"> <input type="button" value="青" onclick="Push(1)"> <input type="button" value="黄" onclick="Push(2)"> <input type="button" value="緑" onclick="Push(3)"> <input type="button" value="白" onclick="Push(4)"> </form> <script type="text/javascript"> <!-- //色名の英単語を配列に入れる var col=new Array("red","blue","yellow","green","white"); //乱数を入れる変数 var Rnd; //テキストボックスに問題文(色名)を表示する関数 function Mondai(){ //0~4までの乱数を発生させる Rnd=Math.floor( Math.random() * 5 ); document.quiz.elements[0].value=col[Rnd]; } //正誤判定関数 function Push(num){ //引数を数字に変換 var n=parseInt(num); //正解なら次の問題を表示、間違っていたらアラートを表示する if ( n == Rnd ){ Mondai(); }else{ alert("違います!"); } } // --> </script> どなたかアドバイスをいただけないでしょうか? よろしくお願いします。

みんなの回答

回答No.3

回答は既に頂いているので端折ります。 ChromeかFireFoxで「Ctrl + Shift + J」でコンソールが開きます。 エラーなら行数まで教えてくれるのでデバッグをしましょう。 IEは「Developer Tools」を使用する上に重いのでオススメ出来ません。 (IEはバグもあるので稀にJavaScriptが正常に動作しない場合もある) 何を間違えたのか?を究明するのもプログラミングの一つになります。

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

誤: document.quiz.element[0].value=col[Rnd]; 正: document.quiz.elements[0].value=col[Rnd]; 経験上、初心者の「うまくいかない」の9割はタイプミスです。 「絶対にどこかにタイプミスがある」と疑ってかかるのがいいと思います。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

> document.quiz.element[0].value=col[Rnd]; elementじゃなくてelements。凡ミスですね。 ちゃんとエラーコンソールでエラーメッセージは確認していますか? どの辺が間違っているのかは大体それでわかりますよ。

関連するQ&A

専門家に質問してみよう