我有一个请求,希望在按下数字键盘侧的加号键时,将其复制为Tab键。
似乎在需要Shift键的字母上方的加号键和数字键盘配置中的加号键都具有数字43。
如何确定按下了哪个+键?
更新: 我使用了这个例子 "https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_event_key_keycode" ,如下面所指出的那样,这不是正确的方法。
我有一个请求,希望在按下数字键盘侧的加号键时,将其复制为Tab键。
似乎在需要Shift键的字母上方的加号键和数字键盘配置中的加号键都具有数字43。
如何确定按下了哪个+键?
更新: 我使用了这个例子 "https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_event_key_keycode" ,如下面所指出的那样,这不是正确的方法。
每个按键的键码都是不同的。数字小键盘= 107
,顶部行= 187
您可以使用此功能在自己的键盘上进行验证:
$('#text').on('keydown', function (e) {
$('label').text(e.which);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text" />
<label></label>
在现代浏览器(IE9+)中,您还可以使用key
属性来检测输出了哪个键,而无需担心用于生成它的确切键:
$('#text').on('keydown', function (e) {
if (e.key == '+')
console.log('You typed a plus symbol!');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text" />
<label></label>
这两个按键产生两个不同的按键代码。您可以测试正确的按键代码:
$(document).on("keydown", function(evt){
switch (evt.keyCode){
case 107:
console.log("You pressed '+' on the number pad");
break;
case 187:
console.log("You pressed SHIFT '+' on main keyboard");
break;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Just click once over here to give the "document" focus and then press the + key(s)
keyCode
的异常情况。 - Rory McCrossan