0

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

我怎样才能得到真正的代码(192)property event.altKey = true

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

$(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)。我该如何解决这个问题?

4

2 回答 2

0

这对我有用: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密钥。

于 2012-03-19T01:14:12.283 回答
0

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

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

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

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

});
于 2012-03-19T01:38:17.400 回答