我如何限制只接受数字且不接受十进制值和字母的文本框?
答案 0 :(得分:1)
@shilly是正确的,您可以使用type =“ number”,但是如果这样做不起作用,则可以查看正则表达式并根据您希望输入的外观创建模式。
仅用于十进制和字母之外的数字的正则表达式示例:“ ^ [0-9] + $”
答案 1 :(得分:1)
首先,您需要创建一个调用函数的输入元素
<input type = "text" id = "a" onkeyup="myFunction(event)"/>
现在,您定义输入框,每当您按下键盘上的一个键时,该输入框就会调用函数myFunction(带有事件)。
现在我们需要阻止除0-9以外的所有其他键,并且不带(。),因为您不需要任何小数点。
所以我们需要创建一个正则表达式,可以检查模式并检查键入的值是否遵循模式,如果将其遵循,我们将在变量中设置值,否则将输入值设置为旧的正确值,调用preventDefault。
<script>
let value = null;
function myFunction(event) {
// event.target.value = what ever you typed
// /^[0-9]+$/ = regex code to prevent other letter except 0123456789
if (event.target.value.match(/^[0-9]+$/)) {
value = event.target.value;
} else {
// this line will update your input box to correct value
document.getElementById("a").value = value;
event.preventDefault();
}
}
</script>