gpt4 book ai didi

javascript - OSX 上 Chrome 上的键码消歧

转载 作者:行者123 更新时间:2023-12-01 03:49:25 25 4
gpt4 key购买 nike

我想禁用 keydown 输入上的“-”键。

我的第一个想法是使用通常的解决方案:

if(e.keycode == 189 || e.which == 189 ){
return false;
}

但事实上,“-”和“)”在 Mac 上具有相同的键码(即 189)而且我不希望我的右括号键也被阻止。

由于它们具有相同的键码,因此 fromCharCode 方法在这里无关紧要(两者都笨拙地产生“½”)

还有其他选择吗?

最佳答案

您可以使用 event.key 而不是 event.keyCode。

window.addEventListener("keydown", function (event) {
if (event.defaultPrevented) {
return; // Do nothing if the event was already processed
}

if (event.key == '-') {
event.preventDefault();
}
}, true);

您可以在 javascript here on MDN 中找到有关 KeyboardEvents 的更多信息。 。据说 keyCodewhich 均已弃用。

<小时/>

我添加了一个更详细的代码片段,它展示了如何仅阻止特定元素上的按键。

document.getElementById("field1").addEventListener("keydown", function (event) {
if (event.defaultPrevented) {
return; // Do nothing if the event was already processed
}

if (event.key == '-') {
event.preventDefault();
}
}, true);
<input id="field1" type="text" />
<input id="field2" type="text" />

关于javascript - OSX 上 Chrome 上的键码消歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com