javascript - 如何只允许在输入[类型 ="number"] 字段中输入数字?

标签 javascript html input

我有一个输入字段,用户只能在其中输入数字 [0-9]

document.getElementById("integer").addEventListener('input', restrictToInteger);
function restrictToInteger() {
    this.value = this.value.replace(/[^\d]/g, '');
}
<input type="number" id="integer" />

jsFiddle Demo

问题是这样的:当我输入一个数字(例如 1234)然后按点(.)时,+ 或 - 输入字段的内容是由浏览器自动删除(值设置为“”=空字符串)。但为什么?将类型从 number 更改为 text 似乎可以解决问题。但是后来我失去了输入字段的向上/向下箭头功能。有什么想法吗?

最佳答案

HTML 4 有一个名为onkeypress事件。使用该属性,我们可以在不使用额外 JS 的情况下执行此操作:

<input type="number" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57">

此处从 09 的数字允许使用 event.charCode48 57

关于javascript - 如何只允许在输入[类型 ="number"] 字段中输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470002/

相关文章:

javascript - 形状内文本环绕的算法

html - 使用内联 block 问题将文本放在图像旁边

html - 关闭导航栏时,sidenav 上的元素名称也会折叠

bash - 读取错误:0:资源暂时不可用

c++ - 在 C++ 中确定输入是 int 还是 char

javascript - 创建 HTML 选项卡

javascript - 了解 AJAX

ios - HTML5 音频标签无法在 ios chrome 和 safari 中播放音频文件

php - 如何检查 php 是否为 ://input is set?

javascript - 在 Jquery 中选择第一个搜索项而不单击它