2017-04-11 8 views
0

keydownの入力に ' - 'キーを無効にしたいとします。 「 - 」と「)」マック(すなわち189) で同じキーコードを持っていると私はしたくないOSXのChromeでのキーコードの曖昧さ解消

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

しかし、実際には、:

私の最初のアイデアは、通常の溶液を使用していました私の閉じ括弧のキーもブロックされます。

それらは同じキーコードを持っているので、fromCharCode方法はここでは無関係である(両方がぎこちなく「半分」生じる)

代替はありますか?

答えて

2

event.keyCodeの代わりにevent.keyを使用できます。

​​

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" />