限制输入文本框:仅接受数字,不接受十进制值

时间:2020-03-05 12:31:40

标签: javascript jquery html

我如何限制只接受数字且不接受十进制值和字母的文本框?

2 个答案:

答案 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>