如何从jQuery事件对象中检索keyCode和charCode?

时间:2011-11-28 07:44:07

标签: javascript jquery events keycode

javascript事件对象提供 keyCode() charCode()方法,以便 charCode()为不支持的键返回0导致字符显示如输入,按键,按键,删除,退格等。

我想在jQuery keypress事件回调中检查这些字符,但jQuery事件对象不允许我访问上述方法。

我可以从jQuery中检索js事件对象吗?

2 个答案:

答案 0 :(得分:2)

$('#yourid').bind('keypress', function(e) {
    var keycode= (e.keyCode ? e.keyCode : e.which);
        if(keycode == 13){
                // Enter pressed... do anything here...
        }else if(keycode == 46){// delete

        }else if(keycode == 8){ // backspace

        }
});

资源管理器不会为delete,end,enter,escape,功能键,home,insert,pageUp / Down和tab激活keypress事件。

如果你需要检测这些密钥,请自己帮忙并搜索他们的keyCode onkeydown / up,并忽略onkeypress和charCode。

答案 1 :(得分:1)

关键代码列表可在整个互联网上获得,但这里是为您完成的繁重工作,而不依赖于任何框架......

if (window.addEventListener) {document.addEventListener('keydown',keyPressed,false);}
else {document.attachEvent('onkeydown',keyPressed);}

function keyPressed(evt)
{
 var e = evt || event;
 var key = e.which || e.keyCode;

 if (!powerKeysEnabled) return;
 if (showmeallcodes) {alert( key); return;}

 switch (key)
 {
  case 77:// M
  alert('m key pressed');
  break;

  case 76://L
  alert('L key pressed');
  break;
 }
}