如何确定按下了哪个“+”键?

时间:2017-07-27 19:05:04

标签: javascript jquery

当按下数字键盘侧的加号键时,我有一个复制+键作为tab键的请求。

似乎上面的加号键是需要shift键的字母,而数字在键盘配置中的加号键的数字都是43。

如何确定哪个+键被抑制?

更新: 我正在使用这个例子,“https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_event_key_keycode”如下所示,这不是正确的方法。

2 个答案:

答案 0 :(得分:6)

每个密钥的密钥代码都不同。数字小键盘= 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>

您还可以使用现代浏览器中的key属性(IE9 +)来检测输出哪个键,而不必担心确切地使用哪些键生成它:

$('#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>

答案 1 :(得分:1)

这两个键产生两个不同的键码。你可以测试一个正确的:

$(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)