是否可以从 onkeyup 获取密钥代码? [复制]

Posted

技术标签:

【中文标题】是否可以从 onkeyup 获取密钥代码? [复制]【英文标题】:Is it possible to get the key code from onkeyup? [duplicate] 【发布时间】:2019-06-08 03:50:38 【问题描述】:

我知道在使用 javascript 或 jQuery 时。我可以在对象上添加一个事件侦听器,以便在按下某个键时调用一个函数。

但是,如果函数是从 html 启动的,如下例所示:

function callMyFunction (importantothervalue) 
  //How can I get the keycode?
<textarea onkeyup="callMyFunction(1);"></textarea>
<textarea onkeyup="callMyFunction(2);"></textarea>
<textarea onkeyup="callMyFunction(3);"></textarea>

有没有办法从这个上下文中检索关键代码?或者如果我想获取密钥代码,我是否总是需要制作事件处理程序?

我有什么方法可以在结果函数调用中包含 importantothervalue 而无需对 idclass 属性中的信息进行编码并提取从那里开始?

【问题讨论】:

你能改变 HTML 处理程序吗? 这是一个非常快的回复,但我不确定这意味着什么。我可以在 onkeyup 属性中添加任何内容。我想通过 onkeyup 传递其他参数。 你可以做的也是传递带有其他参数的事件,比如&lt;textarea onkeyup="callMyFunction(event, 3);"&gt;&lt;/textarea&gt;,并且在方法中你可以通过 event.keyCode 访问关键代码 developer.mozilla.org/en-US/docs/Web/Events/keyup 【参考方案1】:

使用event.key(或event.code

您可以将event 传递给可以访问属性key 的函数。

我建议您查看 KeyboardEvent.keyKeyboardEvent.code 的文档

提防旧的keyCode

如果可能,您应该避免使用它;它已经被弃用了一段时间。相反,您应该使用KeyboardEvent.code,如果它已实现。不幸的是,有些浏览器仍然没有它,因此您必须小心确保使用所有目标浏览器都支持的浏览器。谷歌 Chrome 和 Safari 已经实现了KeyboardEvent.keyIdentifier,它在规范草案中定义,但不是最终规范。

示例

function callMyFunction (e, importantothervalue) 
  console.log(e.key); // ex: "j"
  console.log(e.code); // ex: "KeyJ"
  console.log(importantothervalue)
<textarea onkeyup="callMyFunction(event, 1);"></textarea>
<textarea onkeyup="callMyFunction(event, 2);"></textarea>
<textarea onkeyup="callMyFunction(event, 3);"></textarea>

【讨论】:

以上是关于是否可以从 onkeyup 获取密钥代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 cmd 命令行获取输入? [复制]

如何获取密钥然后删除未关联到数组的密钥? [复制]

oninput事件(解决onkeyup无法监听到复制黏贴)

可以从生成的密钥中获取任何数据以在 Playstore 上上传应用程序吗?

是否可以从Play商店轻松显示我手机上安装的cordova应用程序的本地存储数据?

PHP:从数组中获取密钥?