我正在尝试创建一个简单的javascript应用程序来选择1和我在输入字段中指定的数字之间的随机数,因此我可以选择一个随机的赢家参加圣诞节比赛。
以下是我到目前为止的代码。我不认为它可以遥远,你可以帮助我,因为它没有更新输入字段来显示随机数:
<script type="text/javascript" language="javascript">
function randomWinner() {
var topNumber = topNumber.value;
var randomnumber=Math.floor(Math.random() + topNumber);
winningNumber.value=randomnumber;
return true;
}
</script>
<form name="selectWinner">
Pick random number between 1 and <input name="topNumber" value="100"><br /><br />
The winning number: <input name="winningNumber" readonly="true"><br /><br />
<input type="button" value="Pick Winner" OnClick="randomWinner();">
</form>
答案 0 :(得分:3)
您需要将 topNumber 与0和1之间的随机数相乘:
var randomnumber=Math.floor(Math.random() * topNumber);
获取特定范围的随机整数:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
答案 1 :(得分:1)
您正在为随机数添加一个字符串值,例如0.98764912837465 + "100"
为您提供字符串"0.98764912837465100"
。 floor
函数设法将其转换回字符串,但它仍然不会大到足以成为零以外的任何东西。
你需要相乘。这会给你一个0到topnumber-1范围内的数字,所以你必须加1来得到它在1到topN的范围内:
var randomnumber=Math.floor(Math.random() * topNumber) + 1;
答案 2 :(得分:0)
您必须乘以topNumber
,但必须增加topNumber + 1
,以包含范围,因此topNumber = 101
的最大randomNumber
为100。
var randomNumber = Math.floor(Math.random() * topNumber)
答案 3 :(得分:0)
Math.random()
生成0到1之间的数字。这是您需要的:
var randomnumber=Math.floor(Math.random()*topNumber)+1;
Math.random()将生成范围[0..1]
中的值。 [0..1]
乘以topNumber
将导致[0..topNumber]
范围。但是,Math.floor()
会将其限制为[0..(topNumber-1)]
。现在我们添加1并获得[1..topNumber]
。
答案 4 :(得分:0)
var randomnumber=Math.floor(Math.random()*n)
这将给你一个0到n之间的随机数..
答案 5 :(得分:0)
您只能使用其名称来访问输入字段。尝试添加ID并使用getElementById
:
<input name="topNumber" id="topNumber" value="100">
<input name="winningNumber" id="winningNumber" readonly="true">
JavaScript的:
function randomWinner() {
var topNumberInput = document.getElementById('topNumber');
var topNumber = parseInt(topNumberInput.value, 10);
var randomnumber= 1 + Math.floor(Math.random() * topNumber);
var winningNumber = document.getElementById('winningNumber');
winningNumber.value=randomnumber;
return true;
}
此外,我已使用parseInt
确保使用正确的数字。