我正在尝试创建一个随机数游戏。我需要的一个元素是随机数生成器,允许用户设置从中选择数字的范围。目前我有这个,它不起作用。有小费吗?
的JavaScript
var min = document.getElementById("minNum").value;
var max = document.getElementById("maxNum").value;
function setRandomNum() {
document.write(Math.floor(Math.random() * (max - min));
}
HTML
<input type="text" id="minNum" name="minNum" />
<input type="text" id="maxNum" name="maxNum">
<input type="button" id="submitRange" name="submitRange" value="Set Range" onclick="setRandomNum()">
现在document.write只是为了测试它是否有效。
答案 0 :(得分:2)
您正在获取文档加载的输入值,即按下按钮时没有,并且如评论中所述,value
是一个字符串,因此您必须像这样解析它:
function setRandomNum() {
var min = parseInt(document.getElementById("minNum").value);
var max = parseInt(document.getElementById("maxNum").value);
var randomNum = Math.floor(Math.random() * (max - min))
document.write(randomNum);
}
&#13;
<input type="text" id="minNum" name="minNum" />
<input type="text" id="maxNum" name="maxNum">
<input type="button" id="submitRange" name="submitRange" value="Set Range" onclick="setRandomNum()">
&#13;
答案 1 :(得分:0)
您对document.getElementById的调用超出了函数范围,因此不会及时执行。
function setRandomNum() {
var min = document.getElementById("minNum").value;
var max = document.getElementById("maxNum").value;
document.write(Math.floor(Math.random() * (max - min));
}
答案 2 :(得分:0)
我投了thisOneGuy
解决方案。但我建议将getElementId
放在功能之外:
var minElement = document.getElementById("minNum");
var maxElement = document.getElementById("maxNum");
function setRandomNum () {
var max, min, random;
max = parseInt(maxElement.value);
min = parseInt(minElement.value);
random = Math.floor(Math.random() * (max - min));
document.write(random);
}