javascript - 防止箭头键更改数字输入中的值

标签 javascript html css input

我在网页上有一个类似这样的输入控件:

<input type="number" name="value" />

如果此控件具有焦点并且我按下了向上或向下箭头键,那么文本框中的值将递增或递减(IE 除外)。

我想禁用此功能,最好使用 CSS。我已经使用 CSS 删除了微调器按钮。我知道我可以使用 JavaScript 来捕获 keydown 事件,但我想允许箭头键继续向上或向下滚动页面。

最佳答案

没有办法完全用 CSS 来完成您所描述的行为,因为 CSS 处理显示,我们在这里讨论的是行为和键盘事件。

我建议向您的输入添加一个事件监听器,这将防止箭头键对其产生影响,但实际上会阻止页面滚动且输入不在焦点上:

document.getElementById('yourInputID').addEventListener('keydown', function(e) {
    if (e.which === 38 || e.which === 40) {
        e.preventDefault();
    }
});

如果您希望在输入处于焦点状态时使用箭头键滚动页面事件,我建议您使用 JQuery,它可以让您编写更少的代码并且支持所有浏览器。

关于javascript - 防止箭头键更改数字输入中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24192333/

相关文章:

javascript - 如何使用 Google Chrome 扩展更改所选文本的 CSS

javascript - JavaScript 中的结构类型检查

javascript - 如何制作找到文件时出现的隐藏div?

javascript - 叠加悬停效果

html - Bootstrap 网格拉/推行

javascript - 单击事件撤消

javascript - 获取格式化为 2011-04-01 的 Javascript 日期

javascript - 如何在父 div 上捕获事件?

带有CSS箭头的Jquery UI Tab导航

javascript - 1 秒后隐藏元素