EnterKey ne fonctionne pas parfois dans IE8, en utilisant keyPressed de jQuery

Dans mon css HTML:

.edit_field { height: 50px; width: 495px; line-height: 3.6; } 

html:

  

javascrpt:

 $('#message').keypress(function(event) { // not getting fired this block when I pressed enter key // For all other keys its got fired well. if(event.which == 13) { // -- -- -- } }); 

Y at-il un problème dans mon code ou dans mon navigateur (IE8)?

Essaye ça:

 $('#message').keyup(function(e){ if(e.keyCode == 13){ //your code probably want e.preventDefault() as well } }); 

J’ai trouvé que la mise en œuvre de Keypress n’était pas si conviviale pour tous les navigateurs. Juste une pensée.

Edit : Je me souviens maintenant pourquoi cela ne fonctionne pas dans IE8. La touche Entrée (code clé 13) est considérée comme une “touche spéciale” (ainsi que d’autres touches comme les touches fléchées du clavier). IE ne déclenche PAS un événement de frappe pour “Touches spéciales”, c’est pourquoi j’ai dû utiliser keyup.

Vous pouvez trouver plus d’informations ici: http://www.quirksmode.org/dom/events/keys.html

Regardez sous “Touches spéciales”

e.which ne fonctionne pas dans IE, essayez e.keyCode. Vous voudrez probablement utiliser keydown () au lieu de keypress () si vous ciblez IE.

Voir http://unixpapa.com/js/key.html pour plus d’informations.


L’événement jQuery keypress () ne se déclenche pas?

J’ai rencontré cela aussi, en particulier avec des tables utilisant onKeyDown () dans IE7. Les autres touches fonctionnent bien, mais l’entrée est délicate. J’ai résolu le mien en déplaçant mon déclencheur onkeydown () dans le code HTML. À certains endroits, il ne prendrait pas l’entrée mais en rassemblerait d’autres.

Si je me souviens bien, je l’avais initialement dans la balise body et le déplacer vers un

juste à l’intérieur du corps m’a immédiatement permis de détecter l’entrée. J’utilisais jsp avec un interrupteur mais je ne pense pas que ce soit très différent