Событие Keydown: проблемы с '@' - PullRequest
0 голосов
/ 19 марта 2012

Это проблема: мне нужно перехватить символ @, но с событием 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). Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Я не знаю, что такое 192 id, но я обнаружил, что @ - это номер 64.

Вы можете захватить это с помощью нажатия клавиши , например,

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

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

});
0 голосов
/ 19 марта 2012

Это сработало для меня: 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 .

...