只允许数字进入输入文本框

use*_*775 2 html textbox numbers input

我有一个数字输入文本框,我希望允许用户进行编辑,但不想允许用户输入除数字以外的任何其他文本。我希望他们只能使用数字输入框上的箭头。

 <input type = "number" min="0" max="10" step="0.5"  input id="rating"   name = "rating" class = "login-input" placeholder = "Rating 1-5:" value="0">
Run Code Online (Sandbox Code Playgroud)

Roh*_*416 6

您可以通过pure实现此目的JavaScript。创建可以在脚本中重复使用的函数。

function allowNumbersOnly(e) {
    var code = (e.which) ? e.which : e.keyCode;
    if (code > 31 && (code < 48 || code > 57)) {
        e.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)

您最好调用此onkeypress事件处理程序。

<input type="text" id="onlyNumbers" onkeypress="allowNumbersOnly(event)" />
Run Code Online (Sandbox Code Playgroud)

function allowNumbersOnly(e) {
    var code = (e.which) ? e.which : e.keyCode;
    if (code > 31 && (code < 48 || code > 57)) {
        e.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="onlyNumbers" onkeypress="allowNumbersOnly(event)" />
Run Code Online (Sandbox Code Playgroud)


但是,我建议您使用JS的风格,因为这样可以保持HTML的语义并避免污染。您可以在事件处理程序上执行函数,该事件处理程序将使用原始JavaScript或jQuery附加到此文本框。

function allowNumbersOnly(e) {
    var code = (e.which) ? e.which : e.keyCode;
    if (code > 31 && (code < 48 || code > 57)) {
        e.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
    Try editing in me:
    <input type="text" id="onlyNumbers" onkeypress="allowNumbersOnly(event)" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

要限制每个字符,您只需使用即可e.preventDefault()

此外,您也可以使用它,return false但是preventDefault()在这种情况下更好,return false应该明智地选择。很高兴知道他们之间区别