• ベストアンサー

乱数の生成について

下記のスクリプトではボタンをクリックして乱数を生成しています。 ボタンをクリックする事無く、windowが開くと同時に乱数を生成するにはどのようにすれば良いでしょうか? <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function gen_random(num1, num2) { retval=Math.random(); document.myform.ans.value = (Math.floor(retval * (num2 - num1)) + eval(num1)); } //--> </SCRIPT> </HEAD> <BODY> <center> <form name=myform> 乱数の範囲 <input type=hidden name=d1 value=1000> <input type=hidden name=d2 value=9999> <input type=button name=btn1 value=乱数発生 onClick=gen_random(myform.d1.value,myform.d2.value)><br> 乱 数:<input type=text name=ans size=4> </form> </center> </BODY> </HTML>

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

  • ベストアンサー
  • yy_y
  • ベストアンサー率39% (99/252)
回答No.2

もっとシンプルにすると... <html> <head> <title>テスト</title> </head> <body> 乱数:<input type="text" name="ans" size="4"> <script language="JavaScript"> <!-- var NUM_MIN = 1000; /* 最小値 */ var NUM_MAX = 9999; /* 最大値 */ document.all("ans").value = Math.floor(Math.random() * (NUM_MAX - NUM_MIN + 1) + NUM_MIN); /* または,テキストボックスを使わないなら document.write(Math.floor(Math.random() * (NUM_MAX - NUM_MIN + 1) + NUM_MIN)); でもかまいません(前の行に置き換えてお使いください).不要なら消してかまいません.*/ --> </script> </body> </html> なお,あなたのコードでは,9999は絶対に現れません.(Math.random()では0以上1未満の乱数が求められます.8999倍すると0以上8999未満となり,1000を足して小数点以下を切り捨てると1000以上9999未満の整数,つまり1000以上9998以下の整数になってしまいます.)

champ21
質問者

お礼

LancerVIIさん、yy_yさん、ありがとうございました。 助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんばんは。 <body onLoad="gen_random(1000,9999);"> でボタンクリックしなくても呼ばれます。

すると、全ての回答が全文表示されます。

関連するQ&A