使用用户输入的数字范围创建随机数。 (JavaScript的)

时间:2016-03-04 22:56:32

标签: javascript

我正在尝试创建一个随机数游戏。我需要的一个元素是随机数生成器,允许用户设置从中选择数字的范围。目前我有这个,它不起作用。有小费吗?

的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只是为了测试它是否有效。

3 个答案:

答案 0 :(得分:2)

您正在获取文档加载的输入值,即按下按钮时没有,并且如评论中所述,value是一个字符串,因此您必须像这样解析它:

&#13;
&#13;
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;
&#13;
&#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);
}