Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript e.keyCode doesn't catch Backspace/Del in IE

I'm trying to catch the pressing event of Backspace and Delete keys using javascript/jQuery with this kind of code.

$("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);
    } 

});

These lines of code works perfectly in Firefox (3.6.12). That means the alert is popped up when Backspace or Delete is pressed. But this is not working in Internet Explorer (8)

Can anyone suggest me a different way to catch these key press events in Internet Explorer?

like image 232
indranama Avatar asked Nov 03 '10 06:11

indranama


People also ask

What is e keycode === 13?

key 13 keycode is for ENTER key.

What is the keycode for enter in JavaScript?

See Jan Wolters' treatise on Javascript Madness: Keyboard Events. Enter and Numpad Enter both give the same keycode, i.e. 13, because browsers do not differentiate between the two keys.


1 Answers

If you want to support IE and you use special keys (like delete and backspace) I suggest using keydown/keyup instead.

Special keys

Explorer doesn't fire the keypress event for delete, end, enter, escape, function keys, home, insert, pageUp/Down and tab.

If you need to detect these keys, do yourself a favour and search for their keyCode onkeydown/up, and ignore both onkeypress and charCode.

You can read more on cross browser issues of Detecting keystrokes (Quirksmode).

like image 148
25 revs, 4 users 83% Avatar answered Oct 14 '22 11:10

25 revs, 4 users 83%