Je dois suivre les alphabet keys
l' alphabet keys
et la backspace key
avec JavaScript
. J'utilise le code écrit ci-dessous pour suivre toutes les pressions, mais malheureusement, lorsque je presse le backspace button
dans IE
je n'ai aucune idée du problème.
$('#crossword').delegate('.grid_input_holder','keypress',function(event){ alert('keycode : '+event.keycode+' which : '+$(this).val( String.fromCharCode(event.which)); });
Merci d'avance
Si vous souhaitez prendre en charge IE et que vous utilisez des clés spéciales (comme delete
et backspace
), je suggère d'utiliser keyup
/ keyup
place.
Clés spéciales
Explorer ne déclenche pas l' événement de touche pour supprimer, fin, entrer, échapper, touches de fonction, accueil, insertion, pageUp / Bas et onglet.
Si vous avez besoin de détecter ces clés, faites-vous une faveur et recherchez leur keyCode onkeydown / up , et ignorez les deux onkeypress et charCode.
Vous pouvez en savoir plus sur les problèmes de navigation croisée de Détection des frappes de touches (Quirksmode) .
OU
Key Code pour Backspace prendra la valeur = 83 si nous avons déjà quelques caractères dans une zone de texte.
Le code de la clé sera = 8 s'il n'y a PAS de caractères dans la zone de texte et nous essayons de rétrécir en arrière.
Si vous souhaitez prendre en charge IE et que vous utilisez des clés spéciales (comme delete
et backspace
), je suggère d'utiliser keydown/keyup
place.
Le problème survient lorsque vous utilisez IE10. Parce que dans les versions IE <9 donnent
event.which == undefined || event.which == zero
Lorsque la touche de manipulation spéciale est pressée comme Backspace, DEL, INS, HOME, touches de navigation, Entrée, etc. Nous pourrions facilement identifier quand un caractère de manipulation spécial est pressé et peut être manipulé séparément.
Mais dans IE10 . Event.which ne donne pas indéfini ou zéro pour les clés de manipulation spéciales à la place, il donne le code-clé … Une chose surprenante est: il donne le même code clé pour Dot (.) Et Delete, Single quote (') et la flèche droite, etc.
Par conséquent, nous ne pouvions pas identifier exactement dans IE10 lorsque la touche de manipulation spéciale est pressée en n'utilisant ni événement. Ni code d'événement .
Dans ces situations … Utiliser
event.charCode == 0
Pour identifier les caractères de gestion spéciaux dans IE10
Croyez-moi des amis, cela m'a sauvé plus d'une semaine d'efforts.