JavaScript OnKeydown

2025年4月18日 | 阅读 4 分钟

什么是 OnKeydown?

在 JavaScript 中,Onkeydown 是一个事件处理程序,当用户按下键盘上的按键时可以调用。当我们在一个用户可以输入字符的表单元素(如文本区域或文本框)中使用 Web 元素时,可以使用任何元素。

它说明了当对象在文档中处于焦点时按下按键时应该发生什么。如果我们想获取按下的按键,我们需要使用 keyCode 和 which 事件属性。

语法

让我们看看 JavaScript 中 onkeydown 事件处理程序的语法

event.code 和 event.key

事件对象的 key 属性允许我们检索字符,而其 code 属性允许我们检索物理按键代码。

现在假设我们有一个按下的按键 A,无论是否按下了 Shift 键。它将给我们两个不同的字符

小写 (a) 和大写 (A)

如果用户使用的是不同的语言,它将产生一个与 A 完全不同的字符。这将是 event.key 的值,而 event.code 将始终相同。

注意:event.code 指示被按下的具体按键。例如,大多数键盘都有两个 Shift 键,一个在左边,一个在右边。event.code 帮助我们识别出按下了哪一个。同时,event.key 负责定义按键的功能,例如它是否是 Shift 键。

通过这个,我们可以检查哪个按键被按下,我们需要在 keydown 上设置一个监听器。

一方面,如果 event.key 的值是字符,它会根据语言而变化。如果用户在操作系统中有多种语言,并且用户在它们之间切换,那么同一个按键将具有不同的字符。我们需要检查 event.code 始终保持不变。

例如

输出

JavaScript OnKeydown

自动重复

当一个按键被按得足够长时,它就会开始自动重复:keydown 会一次又一次地触发,当它被释放时,我们最终得到 keyup。

我们有多个 keydown 事件和一个 keyup 事件,这是正常的。如果我们希望事件由自动重复触发,我们需要访问事件对象并检查 event.repeat 属性是否设置为 true。

默认操作

我们有不同的默认操作。这是因为键盘可能会启动各种操作,如下所述

  • 一个字符会出现在屏幕上。
  • 使用 delete 键删除一个字符。
  • 可以使用 page-down 键滚动。
  • 可以使用 Ctrl+S 打开保存页面对话框。

如果我们阻止 keydown 的默认操作,它可能会取消其中大部分,但 OS 特定的按键除外。例如,在 Windows 上,我们可以使用 Alt+F4 关闭当前浏览器窗口。在 JavaScript 中,无法通过阻止默认操作来停止它。

示例 1

输出

JavaScript OnKeydown

示例 2

输出

JavaScript OnKeydown

示例 3

输出

JavaScript OnKeydown

示例 4

输出

JavaScript OnKeydown