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

Creating a random number generating using user inputted number range. (JavaScript)

本文关键字:随机数 JavaScript 数字 用户 输入 创建 范围      更新时间:2023-09-26

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

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

您在文档加载时获得输入的值,即不是在按下按钮时,如注释中所述,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);
}
<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.getElementById的调用在函数之外,所以它们不会及时执行。

function setRandomNum() {
    var min = document.getElementById("minNum").value;
    var max = document.getElementById("maxNum").value;
    document.write(Math.floor(Math.random() * (max - min));
}

我投票支持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);
}