我正在尝试检测由 Alt(按住)和一位或多位数字组成的组合击键,然后检索输入的数字以进行进一步处理。例如:
输入:Alt + 4 + 2
所需输出:42
我想我需要将
keydown
和 keyup
组合在一起,并将输入的数字存储在数组中,然后从中生成一个数字。如何实现这一目标?
够有趣的。您确实利用了事件
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">