jQuery 事件按键:按下了哪个键? A-Z,&@

2023-11-30

在 keydown 上我从 jQuery 得到以下信息:

jQuery.Event
altKey: false
attrChange: undefined
attrName: undefined
bubbles: true
button: undefined
cancelable: true
charCode: 0
clientX: undefined
clientY: undefined
ctrlKey: false
currentTarget: HTMLDivElement
data: undefined
detail: 0
eventPhase: 2
fromElement: undefined
handleObj: Object
handler: function () {
isDefaultPrevented: function returnFalse() {
jQuery16106168975948821753: true
keyCode: 51
layerX: 0
layerY: 0
metaKey: true
newValue: undefined
offsetX: undefined
offsetY: undefined
originalEvent: KeyboardEvent
pageX: 0
pageY: 0
prevValue: undefined
relatedNode: undefined
relatedTarget: undefined
screenX: undefined
screenY: undefined
shiftKey: false
srcElement: HTMLDivElement
target: HTMLDivElement
timeStamp: 1320206454048
toElement: undefined
type: "keydown"
view: DOMWindow
wheelDelta: undefined
which: 51
__proto__: Object

我怎样才能知道按下了什么键?我试过:

 String.fromCharCode(e.keyCode)

这适用于 A-Z,但如果我按 @,我不会得到 @,我会得到 2?

Ideas?


您可以捕获三种键盘事件:keyup, keydown, and keypress。前两者的行为方式与您观察到的方式相同,而后者的行为方式与您似乎想要的方式相同。

您需要了解键和与该键关联的字符之间的区别。

正如中所解释的jQuery文档(诚​​然,它有点被埋没了),keyup and keydownevents 给出与键盘上实际物理键相对应的 keyCode,因此大写“A”和小写“a”将具有相同的代码,“2”和“@”也将具有相同的代码 - 但请注意上面的“2”键“W”与数字键盘上的“2”键具有不同的代码。这event.shiftKey属性会告诉您按下该键时 Shift 是否按下。这两个事件还可以检查非文本类型键,例如箭头键、Ctrl、Home 等。

另一方面,keypressevent 给出了与字符相对应的 keyCode,因此“A”和“a”将给出不同的 keyCode,“2”和“@”也会给出不同的 keyCode。So keypress可能更适合您的需求。

(顺便说一句,这不是 jQuery 的事情,即使使用“普通”JavaScript,这也是正常行为,尽管 jQuery 尝试规范化不同浏览器之间的行为。其中一个规范化是 jQuery 确保event.which会持续工作,所以你应该使用event.which获取代码而不是event.keyCode.)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 事件按键:按下了哪个键? A-Z,&@ 的相关文章

随机推荐

  • 从 Windows 中的文件名中删除最后一个字符

    我对批处理编程很陌生 我想删除文件名中的最后一个字符 10 myfile 12345 6789 txt 11 myfile 12345 0987 txt 我想删除文件名的最后 4 位数字 我该怎么做 我已经尝试过这个 echo off se
  • 使用 SpongyCastle 进行 RSA

    我对加密的了解非常基础 因此对于我的无知表示歉意 在 Android 应用程序中 我目前正在尝试使用以下命令来模拟此命令的执行SpongyCastle 图书馆和标准java security libs echo test openssl r
  • 以编程方式添加具有多个号码的一位联系人 Android

    如何以编程方式在 Android 手机上添加一个具有多个号码的联系人 我们可以这样做 将名称和数字数组传递给此方法 public static void addToContactList Context context String str
  • background_task.py 不显示消息 - Python

    我注意到 当我从 Discord py Github 页面运行代码片段时 它没有显示预期的消息 我稍微修改过的代码 import discord import asyncio import nest asyncio nest asyncio
  • 计算运行中位数时缺失值?

    我想平滑时间序列以避免虚假抖动 错误 换句话说 我想做一些非常局部的鲁棒平滑 我在动物园包中遇到了 rollmean 和 rollmedian 但遇到了问题 因为我的向量中有一个 NA 然后我在某处读到那些动物园函数使用 runmed 这就
  • 如果我不知道实际的对象类型,如何在 C# 中比较两个 IEnumerable

    我正在努力实施IEquatable lt gt 一个类的接口 班级有一个Parameter使用泛型类型的属性 基本上类的定义是这样的 public class MyClass
  • 如何访问父组件中子组件的引用

    如果我有类似的东西
  • 使用 Python Paramiko 执行命令并等待其完成

    我在 Paramiko 中编写了这段代码 ssh SSHClient ssh set missing host key policy AutoAddPolicy ssh connect hostname username user pass
  • 为什么 R 在文件路径中使用正斜杠 (/) 而不是反斜杠 (\)

    我正在教授在线课程 一个学生问我为什么 R 只使用 并不是 使用时在文件路径中read csv以及其他相关功能 我试着看看文档但它并没有真正提到任何相关内容 从来没有真正考虑过这个问题 因为我使用 Mac Mac 中的默认设置是 但在 Wi
  • ZipEntry 中的额外字节有何用途?

    用于 Zip 文件的 Java 库有一个选项ZipEntry for getExtra 返回byte or null ZipEntry 中的额外字节有何用途 我知道这个问题关于链接到的存档属性getExtra 但它没有解释该字段的其他用途
  • 如何将 kendo Ui 下拉列表选定值的 ID 传递到控制器?

    我正在尝试创建一个使用 KENDO UI Dropdown 的应用程序 问题是我想将视图中的值更新到数据库中 在选择下拉列表中的任何值时 与其关联的 ID 应传递到控制器以进行所需的数据库更新 但这里下拉列表的任何选择的 ID 都会将 nu
  • Alfresco 共享登录问题

    我发现本地安装的露天共享存在一些问题 当我尝试使用登录时 http localhost 8080 共享 它向我返回此错误消息 The remote server may be unavailable or your authenticati
  • 更新 github 上的分叉存储库

    我从 github 分叉了一个存储库 它称为 bootstrap 我已经克隆了我的叉子 git clone https github com Fowowski bootstrap git bootstrap 项目有一个 master 分支和
  • ‘$’不被识别为内部或外部命令..”

    我已经安装了 Node 并重新启动了计算机 将 C Program Files nodejs 添加到我的路径中 但是当我在命令提示符中运行 node version 来检查版本时 它返回 未被识别为内部或外部命令 可操作程序或批处理文件 你
  • SQL Server 中的 DECIMAL 和 NUMERIC 有什么区别吗?

    SQL Server 中的 DECIMAL 和 NUMERIC 数据类型有什么区别吗 什么时候应该使用 DECIMAL 什么时候应该使用 NUMERIC 他们是一样的 数字在功能上等同于十进制 MSDN 小数和数字
  • 使用 Moment.js 进行区域设置检测

    我在项目中使用 Moment js 并格式化日期 如下所示 var date moment unix 1318781876 return date format LLLL 目前文档声明支持多个区域设置 我想知道 moment js 是否会自
  • JavaFX 2:在 TableCell 中保存编辑

    在我的 JavaFX 程序中 我使用 TableCell 您可以在其中编辑值 就像 JavaFX 页面上的示例所示 例子 我使用这个函数来保存更改 函数在编辑单元格的 TextField 上设置 textField setOnKeyRele
  • 如何向socket通道写入数据

    是否有任何小型工作程序可以使用 java nio 从客户端接收数据并向客户端发送数据 实际上我无法写入套接字通道 但我能够读取传入的数据 如何向socket通道写入数据 谢谢 迪帕克 您可以将数据写入套接字通道 如下所示 import ja
  • 固定位置的div

    我有一个样式为position fixed 的div 我希望它向下滚动页面 但我不希望div 溢出到页脚中 我怎样才能做到这一点 提前致谢 肖恩 尝试这个 CSS body html height 100 margin 0 padding
  • jQuery 事件按键:按下了哪个键? A-Z,&@

    在 keydown 上我从 jQuery 得到以下信息 jQuery Event altKey false attrChange undefined attrName undefined bubbles true button undefi