MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/d6d7ff2e2f9c

Non standard
Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

Obsolète
Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

La propriété en lecture seule KeyboardEvent.charCode retourne la valeur Unicode d'une touche caractère pressée pendant un évènement keypress.

Pour des constantes équivalant ces codes numériques, voir KeyEvent.

N'utilisez plus cette propriété, elle est dépréciée.

Utilisez plutôt KeyboardEvent.key.

Syntaxe

var value = event.charCode;
  • value est la valeur Unicode du caractère associé à la touche pressée.

Exemple

<html>
  <head>
    <title>Exemple charCode</title>

    <script type="text/javascript">

      function AfficherCarac(e)
      {
        alert(
                "Touche tapée : " + 
                String.fromCharCode(e.charCode) + "\n" + 
                "charCode: " + e.charCode
        );
      }

    </script>
  </head>

  <body onkeypress="showChar(event);">
    <p>Tapez une touche caractère de votre clavier (a,b,c...)</p>
  </body>
</html>

Notes

Après un évènement keypress, la valeur Unicode de la touche pressée est stockée dans l'une ou l'autre des propriétés keyCode et charCode, jamais les deux à la fois. Si la touche pressée génère un caractère (ex. 'a'), charCode prend la valeur du code de ce caractère, en respectant la casse. (i.e. charCode tient compte d'une touche Maj. enfoncée). Sinon, le code est stocké dans keyCode.

Quand une ou plusieurs touche modificatrices sont pressées, il y a quelques règles complexes pour charCode, jetez un oeil à Gecko Keypress Event (en anglais) pour le détail.

charCode n'est jamais défini lors d'évènements keydown et keyup. Dans ces cas, keyCode is set instead.

Pour obtenir le code de la touche qu'il soit stocké dans keyCode ou charCode, requêtez la propriété which.

Les caractères entrés via IME ne s'enregistrent pas sous keyCode ou charCode. Actually with the Chinese IME I'm using, entering the IME results in a keypress event with keyCode = 229 and no other key events fire until the IME exits (which may happen after multiple characters are inputted). I'm not sure if other IME's work this way.

Pour une liste de valeurs de charCode associées à leurs touches, lancez l'exemple dans Gecko DOM Reference:Examples #Example 7: Displaying Event Object Constants (en anglais) et regardez le tableau HTML résultant.

Spécifications

Spécification (en anglais) Statut Commentaire
Document Object Model (DOM) Level 3 Events Specification
La définition de 'KeyboardEvent.charCode' dans cette spécification.
Obsolete Définition initiale; Déprécié

Compatibilité des navigateurs

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Support basique 26 (probablement plus tôt) (Oui) 3 9 12.1 5.1 (probablement plus tôt)
Feature Android Chrome pour Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support basique ? ? (Oui) ? ? ? 5.1 (probablement plus tôt)

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : ManuelEdao
 Dernière mise à jour par : ManuelEdao,