KeyboardEvent quelle propriété
Exemple
Obtenez la valeur Unicode de la touche du clavier enfoncée :
var x = event.which;
Plus d'exemples "Essayez-le vous-même" ci-dessous.
Définition et utilisation
La propriété which renvoie le code de caractère Unicode de la touche qui a déclenché l' événement onkeypress , ou le code de touche Unicode de la touche qui a déclenché l' événement onkeydown ou onkeyup .
La différence entre les deux types de code :
- Codes de caractères - Un nombre qui représente un caractère ASCII
- Codes de touche - Un nombre qui représente une touche réelle sur le clavier
Ces types ne signifient pas toujours la même chose ; par exemple, un « w » minuscule et un « W » majuscule ont le même code de clavier, car la touche qui est enfoncée sur le clavier est la même (juste « W » = le nombre « 87 »), mais un code différent code de caractère car le caractère résultant est différent (soit "w" ou "W", qui est "119" ou "87") - Voir "Plus d'exemples" ci-dessous pour mieux le comprendre.
Astuce : Pour savoir si l'utilisateur appuie sur une touche imprimable (par exemple "a" ou "5"), il est recommandé d'utiliser cette propriété sur l'événement onkeypress. Pour savoir si l'utilisateur appuie sur une touche de fonction (par exemple "F1", "CAPS LOCK" ou "Home"), utilisez l'événement onkeydown ou onkeyup.
Remarque : La propriété which n'est pas prise en charge dans IE8 et les versions antérieures. Pour ces versions de navigateur, vous pouvez utiliser la propriété keyCode . Cependant, la propriété keyCode ne fonctionne pas sur l'événement onkeypress dans Firefox. Pour une solution multi-navigateur, vous pouvez utiliser le code suivant :
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
Conseil : Pour obtenir une liste de tous les caractères Unicode, veuillez consulter notre Référence Unicode complète .
Conseil : Si vous souhaitez convertir la valeur Unicode renvoyée en caractère, utilisez la méthode fromCharCode() .
Remarque : Cette propriété est en lecture seule.
Remarque : les propriétés which et keyCode sont fournies à des fins de compatibilité uniquement. La dernière version de la spécification des événements DOM recommande d'utiliser la propriété key à la place (si disponible).
Astuce : Si vous souhaitez savoir si la touche "ALT", "CTRL", "META" ou "SHIFT" a été enfoncée lorsqu'un événement de touche s'est produit, utilisez la propriété altKey , ctrlKey , metaKey ou shiftKey .
Prise en charge du navigateur
Les nombres dans le tableau indiquent la première version du navigateur qui prend entièrement en charge la propriété.
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
Syntaxe
event.which
Détails techniques
Valeur de retour : | Un nombre, représentant soit un code de caractère Unicode, soit le code de clé Unicode |
---|---|
Version DOM : | Événements DOM niveau 2 |
Plus d'exemples
Exemple
Utilisation de onkeypress et onkeydown pour démontrer les différences entre les codes de caractères et les codes de clavier :
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
Lorsque vous appuyez sur la touche "a" du clavier (sans utiliser le verrouillage des majuscules), le résultat de char et key sera :
Unicode CHARACTER code: 97
Unicode KEY code: 65
Exemple
Alerte du texte si l'utilisateur appuie sur la touche Échap :
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
Exemple
Convertissez la valeur Unicode en caractère (ne fonctionne pas pour les touches de fonction) :
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
Pages connexes
Référence HTML DOM : propriété de la clé KeyboardEvent
Référence HTML DOM : propriété KeyCode de KeyboardEvent
Référence HTML DOM : Propriété charCode de KeyboardEvent