【发布时间】:2021-09-28 01:49:16
【问题描述】:
我正在尝试从“min_num”和“max_num”字段中获取输入值,但那里什么也没有。此外,当我尝试 parseInt() 方法时,我得到的不是数字(NaN)...
我该如何解决这个问题?
var min_num = document.getElementById("min_num").value;
var max_num = document.getElementById("max_num").value;
var generate = document.getElementById("generate");
function myRandomNumber(min, max) {
var randomNumber = Math.floor(Math.random() * max) + min;
document.getElementById("random_number").value = randomNumber;
}
generate.onclick = myRandomNumber(min_num, max_num);
<form action="#">
<input type="number" id="min_num" placeholder="Minimum number">
<input type="number" id="max_num" placeholder="Maximum number"><br>
<input type="text" id="random_number" disabled="disabled" placeholder="Random number">
<button id="generate">Generate</button>
</form>
【问题讨论】:
-
因为值变化时不会更新变量.....你需要在变化时读取值。同样
generate.onclick = myRandomNumber(min_num, max_num);调用该函数并将其返回的内容分配给onclick,它不会调用该onclick。而你的 range 函数是错误的,它会在 range 之外生成随机数。 -
尝试删除变量赋值中的
.value,并将它们添加到generate.onclick = () => myRandomNumber(min_num.value, max_num.value); -
.values 来自输入是字符串(甚至是type="number"),因此您需要在使用它们之前转换为数字。
标签: javascript html