是否可以从onkeyup获取密钥代码?

时间:2019-01-14 06:39:03

标签: javascript events event-handling keycode onkeyup

我知道在使用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 而不在 id class 属性中对信息进行编码并提取从那里来吗?

1 个答案:

答案 0 :(得分:3)

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

但是我建议您在使用KeyboardEvent.keyCode

之前先阅读文档。
  

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

function callMyFunction (e, importantothervalue) {
  console.log(e.code);
  console.log(importantothervalue)
}
<textarea onkeyup="callMyFunction(event, 1);"></textarea>
<textarea onkeyup="callMyFunction(event, 2);"></textarea>
<textarea onkeyup="callMyFunction(event, 3);"></textarea>