web-dev-qa-db-fra.com

JavaScript E.KeyCode n'atteint pas BackSpace / del In IE

J'essaie d'attraper l'événement pressant de BackSpace et de supprimer des touches à l'aide de JavaScript/JQuery avec ce type de 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);
    } 

});

Ces lignes de code fonctionnent parfaitement dans Firefox (3.6.12). Cela signifie que l'alerte est surveillé lorsque vous appuyez sur le dos et la suppression. Mais cela ne fonctionne pas dans Internet Explorer (8)

Quelqu'un peut-il me suggérer une autre façon d'attraper ces événements de la presse clé dans Internet Explorer?

19
indranama

Si vous voulez supporter IE et vous utilisez des touches spéciales (comme delete et backspace), je suggère d'utiliser keydown/keyup.

Touches spéciales

Explorateur ne tire pas l'événement KeyPress pour la suppression, la fin, l'entrée, l'évacuation, les touches de fonction, la maison, l'insertion, la pageUP/bas et l'onglet.

Si vous avez besoin de détecter ces clés, faites-vous une faveur et recherchez leur code-clés ONKEKEDOWN/UP et ignorez-les sur la technologie et le charcode.

Vous pouvez en lire plus sur des problèmes de navigateur croisés de Détecter les frappes de frappe (Quirksmode).

25
gblazex