使用按键和或功能
当按下键盘上的“ Enter”按钮时,我要将我的应用程序配置为单击“ Enter” Div。我已经有Enter Div,当我使用鼠标单击它时,它可以正常工作。我相信我需要将按键功能与事件侦听器和逻辑或| |操作员。但是我无法正常工作,甚至不确定我是否朝着正确的方向发展,感谢您的帮助。我的代码如下。
let display = document.getElementById("display");
let validKeys = [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"0",
"Enter",
"Clear",
];
let pin = "";
document.getElementById("pin-pad").addEventListener("click", (event) => {
if (!validKeys.includes(event.target.innerText)) {
return;
}
if (event.target.innerText === "Enter") {
window.electronAPI.sendPin(pin);
return;
}
if (event.target.innerText === "Clear") {
pin = display.value = "";
return;
}
pin = pin + event.target.innerText;
display.value = "*".repeat(pin.length);
});
///tests
const handlekeyUp = function (e) {
e.stopPropagation();
const input = document.getElementById("display");
console.log(input, e.key, input.value);
var reg = new RegExp("^[0-9]$");
const number = document.querySelector(`[data-number="${e.key}"]`);
if (reg.test(e.key)) input.value += e.key;
if (number) number.style.backgroundColor = "#fff";
};
const handleKeyDown = (e) => {
const number = document.querySelector(`[data-number="${e.key}"]`);
if (!number) {
return;
}
number.style.backgroundColor = "#eee";
};
document.addEventListener("keyup", handlekeyUp);
document.addEventListener("keydown", handleKeyDown);
<div id="container">
<div id="wrapper">
<input type="password" id="display" disabled />
<div id="pin-pad">
<div data-number="1">1</div>
<div data-number="2">2</div>
<div data-number="3">3</div>
<div data-number="4">4</div>
<div data-number="5">5</div>
<div data-number="6">6</div>
<div data-number="7">7</div>
<div data-number="8">8</div>
<div data-number="9">9</div>
<div>Enter</div>
<div data-number="0">0</div>
<div>Clear</div>
</div>
</div>
</div>
I'm tying to configure my app to click "Enter" div, when the "Enter" button on the keyboard is pressed. I already have the Enter div and it works when I click it with the mouse. I believe I need to use the keypress function with event listener and the logical OR | | operator. but I could not get it working, not even sure if I am in the correct direction, Thanks alot for the help. My code is as follows.
let display = document.getElementById("display");
let validKeys = [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"0",
"Enter",
"Clear",
];
let pin = "";
document.getElementById("pin-pad").addEventListener("click", (event) => {
if (!validKeys.includes(event.target.innerText)) {
return;
}
if (event.target.innerText === "Enter") {
window.electronAPI.sendPin(pin);
return;
}
if (event.target.innerText === "Clear") {
pin = display.value = "";
return;
}
pin = pin + event.target.innerText;
display.value = "*".repeat(pin.length);
});
///tests
const handlekeyUp = function (e) {
e.stopPropagation();
const input = document.getElementById("display");
console.log(input, e.key, input.value);
var reg = new RegExp("^[0-9]$");
const number = document.querySelector(`[data-number="${e.key}"]`);
if (reg.test(e.key)) input.value += e.key;
if (number) number.style.backgroundColor = "#fff";
};
const handleKeyDown = (e) => {
const number = document.querySelector(`[data-number="${e.key}"]`);
if (!number) {
return;
}
number.style.backgroundColor = "#eee";
};
document.addEventListener("keyup", handlekeyUp);
document.addEventListener("keydown", handleKeyDown);
<div id="container">
<div id="wrapper">
<input type="password" id="display" disabled />
<div id="pin-pad">
<div data-number="1">1</div>
<div data-number="2">2</div>
<div data-number="3">3</div>
<div data-number="4">4</div>
<div data-number="5">5</div>
<div data-number="6">6</div>
<div data-number="7">7</div>
<div data-number="8">8</div>
<div data-number="9">9</div>
<div>Enter</div>
<div data-number="0">0</div>
<div>Clear</div>
</div>
</div>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的
handlekekep
事件处理程序中使用event.keycode
,以确定按下哪个键,如果按下 enter 键,然后在按下同一指令时发送相同的指令单词 enter 单击:重构代码,然后单击单词“ Enter” Word,KeyPress输入密钥:
Use
event.keyCode
in yourhandlekeyUp
event handler to determine which key is pressed and if the Enter key is pressed, then send the same instruction when the word Enter is clicked:Refactoring your code and including click word "Enter" word, and keypress Enter key: