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 はわかりませんが、番号64であることがわかりました。

次のようなキープレスイベントでそれをキャプチャできます

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

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

});
于 2012-03-19T01:38:17.400 に答える