【问题标题】:Keydown event: problems with '@'Keydown 事件:'@' 的问题
【发布时间】:2012-03-18 23:52:38
【问题描述】:

这就是问题所在:我需要截取 char @,但使用 jQuery 和 keydown 事件我只得到代码 17。

如何使用property event.altKey = true 获取真实代码 (192)?

这是我的代码。它连接到一个输入字段:

$(this).keydown(function(e) {
   var keycode = (e.keyCode ? e.keyCode : e.which);

   alert(e.keyCode + " - " + e.which + " - alt:" + e.altKey + " - shift:" + e.shiftKey + " - ctrl:" + e.ctrlKey);
});

此警报始终显示 17 (ctrl / alt)。我该如何解决这个问题?

【问题讨论】:

  • 你想完成什么?这是一个输入字段吗?
  • 因为您在keydown 上发出警报(阻止),因此您不会注册第二个密钥。
  • 是的,它连接到一个输入字段。但我不知道如何截取我需要的密钥'@'...

标签: jquery keydown ctrl


【解决方案1】:

我不知道192 id是什么,但我发现@是nr 64。

您可以使用 keypress 事件来捕获它,例如,

$("#textfield").keypress(function(e) 

if (e.which == 64)
{
    console.log('you typed "@" symbol!');
} 

});

【讨论】:

    【解决方案2】:

    这对我有用:http://jsbin.com/ohucuj/edit#preview

    $(function() {
      $("#thingToTest").keydown(function(e) {
        var keycode = (e.keyCode ? e.keyCode : e.which);
        if (e.shiftKey && e.which == 50) {
          $("#message").html("You pressed SHIFT+2 or @ !!!"); 
        }else{
          $("#message").html(e.keyCode + " - " + e.which + " - alt:" + e.altKey + " - shift:" + e.shiftKey + " - ctrl:" + e.ctrlKey);
        }
      });
    });
    

    只需测试 Shift 键和 2 键。

    【讨论】:

    • 我在 mac,我使用 alt + 2。
    • 我用我的mac测试过,它的工作原理是一样的。猜猜我不使用alt
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2018-12-24
    相关资源
    最近更新 更多