2017-04-11 59 views
0

我想在keydown上的输入上禁用' - '键。 “ - ”和“)”对MAC(即189) 相同的键码,我不想OSX上的Chrome上的键码消除歧义

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

但事实上,:用通常的解决

我的第一个想法是我的右括号键也会被阻止。

,因为它们具有相同的键码,则fromCharCode方法在这里无关紧要(二者笨拙产生“½”)

是有一个替代?

回答

2

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

​​

你可以在javascript中找到更多关于KeyboardEvents的信息here on MDN。有说明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" />