Javascript OSX上Chrome上的键码消歧
我想在按下键时禁用输入上的“-”键 我的第一个想法是使用通常的解决方案:Javascript OSX上Chrome上的键码消歧,javascript,jquery,macos,google-chrome,Javascript,Jquery,Macos,Google Chrome,我想在按下键时禁用输入上的“-”键 我的第一个想法是使用通常的解决方案: if(e.keycode == 189 || e.which == 189 ){ return false; } 但事实上,'-'和''在mac上有相同的密钥码(即189) 我不希望我的右括号键也被阻塞 因为它们有相同的键码,所以fromCharCode方法在这里是不相关的(两者都笨拙地产生了“½”) 有其他选择吗?您可以使用event.key而不是event.keyCode window.addEventListe
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中找到有关键盘事件的更多信息。据说,keyCode
和这两种都不推荐使用
我添加了一个更详细的代码片段,它显示了如何仅在特定元素上阻止键
document.getElementById(“field1”).addEventListener(“按键”,函数(事件){
if(event.defaultPrevented){
return;//如果事件已被处理,则不执行任何操作
}
如果(event.key='-'){
event.preventDefault();
}
},对)代码>
您可以使用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中找到有关键盘事件的更多信息。据说,keyCode
和这两种都不推荐使用
我添加了一个更详细的代码片段,它显示了如何仅在特定元素上阻止键
document.getElementById(“field1”).addEventListener(“按键”,函数(事件){
if(event.defaultPrevented){
return;//如果事件已被处理,则不执行任何操作
}
如果(event.key='-'){
event.preventDefault();
}
},对)代码>