仅允许在文本框中键入数字

Ene*_*oma 74 javascript

可能重复:
如何使用jQuery仅允许HTML输入框中的数字(0-9)?

如何只允许在此文本框中写入数字?

<input type="text" class="textfield" value="" id="extra7" name="extra7">
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 233

您可以订阅onkeypress事件:

<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" />
Run Code Online (Sandbox Code Playgroud)

然后定义isNumber函数:

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到它.

  • 如果您使用某些文本,这不起作用 (13认同)
  • 我不知道如何解释你的`if`条款.如果它大于57,它总是大于31.我认为你可以消除括号. (3认同)
  • 我仍然可以在文本框中复制和粘贴非数字值 (3认同)
  • 仅接受键盘字母部分的数字值。为什么此功能不接受位于键盘右侧的数字键盘按键? (2认同)

pow*_*tac 39

使用HTML5,你可以做到

<input type="number">
Run Code Online (Sandbox Code Playgroud)

您还可以使用正则表达式模式来限制输入文本.

<input type="text" pattern="^[0-9]*$" />
Run Code Online (Sandbox Code Playgroud)

  • 这不会阻止输入非数字字符. (10认同)
  • 允许"." ,这可能是不可取的 (2认同)
  • Firefox 不支持该类型编号。 (2认同)

Arn*_*len 15

您还可以使用某些HTML5属性,某些浏览器可能已经利用了它们(type="number" min="0").

无论你做什么,记得在服务器端重新检查你的输入:你永远不能假设已经执行了客户端验证.

  • Firefox 不支持类型编号和最小值 (2认同)