在按下箭头向上键时,防止文本输入的默认行为。

10 浏览
0 Comments

在按下箭头向上键时,防止文本输入的默认行为。

我正在使用基本的HTML 文本字段来输入数字值。

我添加了JavaScript事件 keyup 来检测用户按下箭头向上键 (e.which == 38) 时,我会增加数字值。

代码运行良好,但有一件事让我不爽。无论是Safari/Mac还是Firefox/Mac,在我按下箭头向上键时,光标都会移动到开头。据我所知,这是每个 文本字段的默认行为,这也很合理。

但这会导致光标在值被修改后来回跳动,给人一种不太美观的效果。

跳跃发生在 keydown 事件上,但即使知道这一点,我也无法阻止它发生。我尝试了以下方法:

input.addEventListener('keydown', function(e) {
    e.preventDefault();
}, false);

keyup 事件中加入 e.preventDefault() 也没有帮助。

有没有办法阻止光标移动?

0