Как получить keyCode и charCode из объекта события jQuery?

Объект события javascript предлагает методы keyCode() и charCode(), так что charCode() возвращает 0 для клавиш, которые не вызывают символ. для отображения, как ввод, клавиша вверх, клавиша вниз, удалить, назад и т. д.

Я хочу проверить именно эти символы внутри обратного вызова события jQuery keypress, но объект события jQuery не дает мне доступа к упомянутым методам.

Могу ли я получить объект события js из jQuery?


person Daud    schedule 28.11.2011    source источник


Ответы (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

        }
});

Проводник не запускает событие нажатия клавиши для удаления, завершения, ввода, выхода, функциональных клавиш, дома, вставки, pageUp/Down и табуляции.

Если вам нужно обнаружить эти клавиши, сделайте себе одолжение и найдите их keyCode onkeydown/up и игнорируйте как onkeypress, так и charCode.

person erimerturk    schedule 28.11.2011

Списки ключевых кодов доступны по всему Интернету, хотя вот тяжелая работа, сделанная за вас, не зависит от каких-либо фреймворков...

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;
 }
}
person John    schedule 28.11.2011