2017-04-11 57 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" />