javascript - 具有交互变量的随机数生成器
问题描述
const inputMin = document.getElementById('min');
const inputMax = document.getElementById('max');
const done = document.getElementById('value');
const rGen = document.getElementById('rGen');
let min = 1;
let max = 100;
inputMin.addEventListener('input', updateValue);
function updateValue(ef) {
min = + ef.target.value ;
}
inputMax.addEventListener('input', updateValue1);
function updateValue1(e) {
max = + e.target.value;
}
function randomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
rGen.addEventListener('submit', (e) => {
done["innerText"] = randomNumber(min, max);
e.preventDefault()
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>generator</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<form id="rGen" class="form">
<h1>Click generate </bold></h1>
<label
for="min">od
</label>
<input type="number" id="min" placeholder='1'>
<label for="max">do</label>
<input type="number" id="max" placeholder="100" size="10"> <br>
<button class="butt">GENERATE</button>
<div id="value">
7
</div>
</form>
</body>
</html>
有人可以帮我解决这个有点乱的代码,但是如果Min > Max,我想切换这两个,因为当 min > 而不是 max 时,代码仍然有效并且它给出了错误的数字,或者任何如何使它更清洁的建议。非常感谢
解决方案
谢谢亚伦,我终于让它按我的意愿工作了,现在当我输入比最大值更高的最小值时,它会自动切换它们并给你很好的结果,谢谢:)
const inputMin = document.getElementById('min');
const inputMax = document.getElementById('max');
const done = document.getElementById('value');
const rGen = document.getElementById('click');
let min = 1;
let max = 10;
inputMin.addEventListener('input', updateValue);
function updateValue(e) {
min = +e.target.value;
}
inputMax.addEventListener('input', updateValue1);
function updateValue1(e) {
max = +e.target.value;
}
function randomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
rGen.addEventListener('click', (e) => {
if (min > max) {
[min, max] = [max, min];
inputMax.value = max;
inputMin.value = min;
done.innerText = randomNumber(min, max);
}
else {
done.innerText = randomNumber(min, max);
}
e.preventDefault()
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>generator</title>
<link rel="stylesheet" type="text/css" href="texts.css">
</head>
<body>
<div>
<div class="Rgen-num" id="value">
</div>
<div class="Rgen-pick">
<div class="upper-text">
min
</div>
<input id="min" value="1" min="-99999999999999" max="99999999999999" type="number">
</div>
<div class="upper-text">
max
</div>
<input id="max" value="10" min="-99999999999999" max="99999999999999" type="number">
</div>
<div class="bot-Rgen" id="click">
<div class="bot-Rgen-text" style="cursor:pointer;color:red;">
Click me to GENERATE
</div>
</div>
<script src="js/script1.js"></script>
</body>
</html>
推荐阅读
- javascript - 将 innerText/textContent 与变量内的值进行比较
- javascript - 如何传递值而不是索引(对 Javascript 不太熟悉)
- javascript - 无法绑定到“标题”,因为它不是“页面标题组件”的已知属性
- angular - npm 版本 - 将 RC 添加到当前版本并使用预发布
- ftp - Vestacp:Ftp 不工作
- python - 在 Ubuntu(Linux 的 Windows 子系统)中显示 matplotlib 图 - Python 3
- javascript - 如何跟踪最新的请求异步调用
- kubernetes - Kubernetes:Prometheus 计算 pod 实例数
- python - Django count queryset:int() 参数必须是字符串、类似字节的对象或数字,而不是 'builtin_function_or_method'
- javascript - 使用正则表达式验证 PDF 表单中的时间输入字段