javascript - 我应该使用什么来代替已弃用的 KeyboardEvent.which 和 KeyboardEvent.keyCode?
问题描述
作为现代化/优化计划的一部分,我正在尝试将 jQuery 从现有代码库中剥离出来。enter
当用户在文本输入中按下键时,有一些地方需要发生一些事情。以前,我们通过以下方式实现了这一点:
$("#loginInput").on("keypress", e => {
if (e.which == 13) {
// if key pressed was enter...
login();
}
});
但是,通过阅读此处的键盘事件 API,我发现大多数常用 API 已被弃用,例如KeyboardEvent.which
和KeyboardEvent.keyCode
.
尽管这些属性在大多数浏览器中仍然可用,但我对使用已弃用的 API 感到不舒服。我应该改用什么?
解决方案
我想你想要event.key
。它似乎得到了广泛的支持。
“key”属性给出了用户与键盘交互所反映的字符,同时考虑了所有涉及的元键(shift、ctrl 等)。
因此,要检查回车符 (13),您可以使用
if (event.key === "Enter") {
// enter key was pressed
}
编辑更新以反映一个令人惊讶的事实,即当该键触发事件时,“key”属性设置为字符串“Enter”。
推荐阅读
- suitescript - 单独文件中的 NetSuite SuiteScript 常量声明
- vsto - 如何为 Outlook 加载项编辑现有 VSTO
- python - Pyre 字典打字
- php - 跳过基于 ZipCode 的 Sylius 结帐付款
- javascript - 是否可以在 firebase 键下方有一个自定义名称?
- flutter - 颤振:GetX。使用 GetxController 将表单输入数据传递到下一页
- c - C stdio 重定向到子进程和从子进程重定向
- javascript - Nodegit 将提交变基到其父级
- css - 从自定义挂钩传递的值不能用于 BackgroundColor 的内联样式。不可分配给类型'BackgroundColor | 不明确的'
- c# - 从后台线程更新 UI 控件 - 委托仅调用一次