gpt4 book ai didi

javascript - 如何将输入限制为数字 0-9?

转载 作者:行者123 更新时间:2023-11-30 13:52:07 25 4
gpt4 key购买 nike

我需要编写一个代码,使其只能将数字 1 - 9 输入到文本字段中。

无论在文本字段中输入什么数字,都将输出该数字的 1-9 时间表。

例如,如果输入数字“1”:将列出 1 x 1 = 1 到 1 x 9 = 9。

我不知道如何将输入数字限制为 1、2、3、4、5、6、7、8 和 9。这是我目前的代码:

<html>
<head>
<script>
function table(){
var integerInput = document.getElementById("integer");
var integer = Number(integerInput.value);

var displayField = document.getElementById("display");
//Reset the innerHTML when a new integer is inserted
displayField.innerHTML = "";
//Loop from 1 -> 9
for(let i = 1; i <= 9; i++) {
//Append the current times table to the HTML
displayField.innerHTML += `${integer} x ${i} = ${integer*i}<br>`
}
}
</script>
</head>
<body>
Enter an integer from 1 to 9:
<input id="integer" type="text">
<button onclick="table()" onclick="table2()">Generate times table</button>
<p id="display"></p>


</body>
</html>

最佳答案

只需确保您的 integer 变量是 1 到 9 之间的整数:

function table() {
var integerInput = document.getElementById("integer");
var integer = Number(integerInput.value);
if (!Number.isInteger(integer) || integer < 1 || integer > 9) {
throw new Error('Number is not an integer between 1 and 9');
}
var displayField = document.getElementById("display");
//Reset the innerHTML when a new integer is inserted
displayField.innerHTML = "";
//Loop from 1 -> 9
for (let i = 1; i <= 9; i++) {
//Append the current times table to the HTML
displayField.innerHTML += `${integer} x ${i} = ${integer*i}<br>`
}
}
Enter an integer from 1 to 9:
<input id="integer" type="text">
<button onclick="table()" onclick="table2()">Generate times table</button>
<p id="display"></p>

另一种选择是使用具有 [1-9] 模式的表单(但不幸的是,您不能将 patterninput 结合使用type="number"):

document.querySelector('form').addEventListener('submit', (e) => {
e.preventDefault();
var integerInput = document.getElementById("integer");
var integer = Number(integerInput.value);
if (!Number.isInteger(integer) || integer < 1 || integer > 9) {
throw new Error('Number is not an integer between 1 and 9');
}
var displayField = document.getElementById("display");
//Reset the innerHTML when a new integer is inserted
displayField.innerHTML = "";
//Loop from 1 -> 9
for (let i = 1; i <= 9; i++) {
//Append the current times table to the HTML
displayField.innerHTML += `${integer} x ${i} = ${integer*i}<br>`
}
});
Enter an integer from 1 to 9:
<form>
<input id="integer" pattern="[1-9]">
<button>Generate times table</button>
<p id="display"></p>
</form>

关于javascript - 如何将输入限制为数字 0-9?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58038192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com