Подтвердить что ты не робот

Javascript e.keyCode не захватывает Backspace/Del в IE

Я пытаюсь поймать нажатие клавиши 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?

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

Key Code для Backspace примет value = 83, если у нас уже есть несколько символов в текстовом поле.

Key Code будет = 8, если в текстовом поле нет символов NO, и мы пытаемся попасть в Backspace.