Javascript e.keyCode не перехватывает Backspace / Del в IE - PullRequest
19 голосов
/ 03 ноября 2010

Я пытаюсь поймать событие нажатия клавиш Backspace и Delete, используя javascript / jQuery с этим видом кода.

$("textarea[name=txt]").keypress(function(e){
    var keycode =  e.keyCode ? e.keyCode : e.which;

    if(keycode == 8){ // backspace
        // do somethiing
        alert(keycode);
    }

    if(keycode == 46){ // delete
        // do somethiing
        alert(keycode);
    } 

});

Эти строки кода отлично работают в Firefox (3.6.12). Это означает, что предупреждение появляется при нажатии Backspace или Delete. Но это не работает в Internet Explorer (8)

Может кто-нибудь предложить мне другой способ отловить эти события нажатия клавиш в Internet Explorer?

Ответы [ 2 ]

25 голосов
/ 03 ноября 2010

Если вы хотите поддерживать IE и используете специальные клавиши (например, delete и backspace), я предлагаю вместо этого использовать keydown / keyup.

Специальные клавиши

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

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

Вы можете прочитать больше о crossпроблемы браузера Обнаружение нажатий клавиш (Quirksmode) .

0 голосов
/ 16 августа 2013

Код клавиши для Backspace примет значение = 83 , если у нас уже есть несколько символов в текстовом поле.

Код ключа будет = 8 , если в текстовом поле НЕТ символов и мы пытаемся нажать клавишу Backspace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...