Pour les clés qui ont des équivalents de caractères imprimables, vous devez utiliser l'événement keypress
parce que vous pouvez récupérer les codes de caractères de l'événement keypress
, qui est généralement pas possible pour keyup
et keydown
événements.
Les propriétés d'un événement dont vous avez besoin sont which
et keyCode
- à peu près tous les navigateurs ont un ou deux d'entre eux, bien que IE brouille les eaux en utilisant keyCode
pour le code de caractère tandis que d'autres navigateurs renvoient un code clé (différent). La plupart des navigateurs non-IE ont également charCode
mais il semble que tous ces navigateurs ont également which
, donc charCode
n'est jamais nécessaire. Un exemple simple:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
Voici un useful reference page.
Fondamentalement cela signifie que je dois gérer les caractères imprimables avec onkeypress et le reste (comme la touche de suppression) avec onkeydown? – Christian
Oui. Si c'est juste la touche delete, ça devrait aller - je crois que le keyCode est 46 dans la plupart des navigateurs et des claviers. –