La réponse sélectionnée pour cette question n'est pas complète. Il ne gère pas le cas où un personnage vous appuyez sur la touche en combinaison avec une touche de modification (par exemple, CTRL-A).
Essayez, par exemple, en tapant CTRL-A l'aide de firefox avec le code suivant. La réponse actuelle le considérer comme un personnage:
HTML:
<input placeholder="Try typing CTRL-A in Firefox" style="width: 200px"/>
Javascript:
$("input").keypress(function (e) {
if (e.which !== 0 && e.charCode !== 0) {
alert(String.fromCharCode(e.keyCode|e.charCode));
}
});
http://jsfiddle.net/4jx7v/
Remarque: une alerte ne sera pas déclenché si l'aide de certains navigateurs (google Chrome), puisqu'ils ne mettent pas le feu à un événement keypress pour les non-caractères.
Une meilleure solution pourrait être:
HTML:
<input placeholder="Try typing CTRL-A in Firefox" style="width: 200px"/>
Javascript:
$("input").keypress(function (e) {
if (e.which !== 0 && e.charCode !== 0 &&
!e.ctrlKey && !e.metaKey && !e.altKey) {
alert(String.fromCharCode(e.keyCode|e.charCode));
}
});
http://jsfiddle.net/hY5f4/
Dans ce cas, l'alerte est déclenché quand Un est pressé, pas de CTRL-A pour tous les navigateurs.