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

创建使用用户输入的数字范围生成的随机数。(JavaScript),javascript,Javascript,我正在尝试创建一个随机数游戏。我需要的元素之一是一个随机数生成器,它允许用户设置从中选择数字的范围。目前我有这个,它不工作。有什么建议吗 JavaScript var min = document.getElementById("minNum").value; var max = document.getElementById("maxNum").value; function setRandomNum() { document.write(Math.floor(Math.random() *

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

JavaScript

var min = document.getElementById("minNum").value;
var max = document.getElementById("maxNum").value;

function setRandomNum() {
document.write(Math.floor(Math.random() * (max - min));
}
HTML



现在document.write只是为了测试它是否有效

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

函数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(随机数);
}

对document.getElementById的调用不在函数范围内,因此无法及时执行

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

我投票支持这个家伙的解决方案。但我建议将
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);
}

您可能还想提到,
是一个字符串,而不是一个数字,并且使用基数来确保十进制数…@thisonegy因此,除了上面的代码之外,我是否需要创建一个新的变量,比如这样?var randomNum=parseFloat(setRandomNum);你想干什么?我想我明白了。只需执行var randomNum=Math.floor(Math.random()*(max-min));我将附加到answer@thisOneGuy对不起,我对javaScript有点陌生。但我试图确保一个像大卫·托马斯所说的数字。那么,添加的代码就足够了吗?减法,
(max-min)
,将强制将字符串解析为整数。
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);
}