如何检测组合按键(Alt+个位数或多位数)并获取号码?

问题描述 投票:0回答:1

我正在尝试检测由 Alt(按住)和一位或多位数字组成的组合击键,然后检索输入的数字以进行进一步处理。例如:

输入:Alt + 4 + 2

所需输出:42

我想我需要将

keydown
keyup
组合在一起,并将输入的数字存储在数组中,然后从中生成一个数字。如何实现这一目标?

javascript keydown keyup onkeydown onkeyup
1个回答
0
投票

够有趣的。您确实利用了事件

keydown
keyup
。我们使用全局对象来记住所有按下的键。

var obj_down = {}
var digits = []

window.addEventListener("keydown", function(ev) {
  obj_down[ev.key] = true;
  if (obj_down["Alt"] === true) {
    if (ev.key >= '0' && ev.key <= '9') {
      digits.push(+ev.key)
    }
  }
})

window.addEventListener("keyup", function(ev) {
  delete obj_down[ev.key];
  if (ev.key === 'Alt') {
    document.querySelector(".output").innerText = digits.join("")
    digits = []
  }
})
<p>hold alt and type a number</p>
<input type="text">
<br> output:
<div class="output">

© www.soinside.com 2019 - 2024. All rights reserved.