我想在keydown的输入上禁用' - '键。
我的第一个想法是使用通常的解决方案:
if(e.keycode == 189 || e.which == 189 ){
return false;
}
但事实上,' - '和')'在mac上具有相同的键码(即189) 我也不希望我的右括号键被阻止。
因为它们具有相同的键码,所以fromCharCode方法在这里无关紧要(两者都笨拙地产生'½')
还有其他选择吗?
答案 0 :(得分:2)
您可以使用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的更多信息。有人声称keyCode
和which
已被弃用。
我添加了一个更详细的代码段,其中显示了如何仅在特定元素上阻止密钥。
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" />
&#13;