Attribut which de l'événement KeyboardEvent
Définition et utilisation
which attribut renvoie déclencher Événement onkeypress du code de caractère Unicode de la touche, ou déclencher onkeydown ou onkeyup Code de touche Unicode de l'événement appuyé
Différences entre les deux types de codes :
- Code de caractère - représentant le nombre du caractère ASCII
- Code de touche - représentant le nombre de la touche réelle du clavier
Ces types ne signifient pas toujours la même chose. Par exemple, les codes de touche du clavier pour la minuscule "w" et la majuscule "W" sont identiques, car la touche appuyée sur le clavier est la même ("W" = nombre "87"), mais les codes de caractères sont différents, car le caractère résultat est différent ("w" ou "W", c'est-à-dire "119" ou "87"). - Veuillez consulter les exemples ci-dessous pour mieux comprendre ce point.
Avis :Pour savoir si l'utilisateur a appuyé 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 a appuyé sur une touche de fonction (par exemple "F1", "CAPS LOCK" ou "Home"), utilisez les événements onkeydown ou onkeyup.
Remarque :Les versions IE8 et antérieures ne prennent pas en charge l'attribut which. Pour ces versions de navigateur, vous pouvez utiliser l'attribut keyCode. Cependant, l'attribut keyCode ne fonctionne pas pour l'événement onkeypress dans Firefox. Pour une solution compatible entre navigateurs, vous pouvez utiliser le code suivant :
var x = event.which || event.keyCode; // Utilisez which ou keyCode, cela dépend du support du navigateur
Avis :Pour une liste de tous les caractères Unicode, consultez notre Référence complète Unicode.
Avis :Si vous devez convertir une valeur Unicode en caractères, utilisez méthode fromCharCode().
Remarque :Cette propriété est en lecture seule.
Remarque :Les propriétés keyCode et which sont fournies uniquement pour la compatibilité. La dernière version de la norme des événements DOM recommande d'utiliser la propriété key (si disponible).
Avis :Si vous souhaitez savoir si "ALT", "CTRL", "META" ou "SHIFT" ont été appuyés lors de l'événement de frappe de touche, utilisez altKey、ctrlKey、metaKey ou shiftKey Attribut.
Exemple
Obtenez la valeur Unicode de la touche du clavier appuyée :
var x = event.which;
Vous trouverez plus d'exemples TIY en bas de la page.
Syntaxe
event.which
Détails techniques
Valeur de retour : | Valeur numérique, représentant le code de caractères Unicode ou le code de touche du clavier Unicode. |
---|---|
Version DOM : | DOM Level 2 Events |
Support du navigateur
Les nombres dans le tableau indiquent la version du navigateur la première à prendre en charge cette propriété.
Attributs | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
which | Supporte | 9.0 | Supporte | Supporte | Supporte |
Plus d'exemples
Exemple
Utilisez onkeypress et onkeydown pour illustrer la différence entre les codes de caractères et les codes du clavier :
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; // event.keyCode est utilisé pour IE8 et versions antérieures document.getElementById("demo").innerHTML = "Code CARACTÈRE Unicode : " + char; } function uniKeyCode(event) { var key = event.which || event.keyCode; // event.keyCode est utilisé pour IE8 et versions antérieures document.getElementById("demo2").innerHTML = "Code KEY Unicode : " + key; }
En appuyant sur la touche "a" du clavier (sans utiliser Capslock), les résultats de char et key seront :
Code CARACTÈRE Unicode : 97 Code KEY Unicode : 65
Exemple
Si l'utilisateur appuie sur la touche Échap, affichez un texte :
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.which || event.keyCode; // event.keyCode est utilisé pour IE8 et versions antérieures if (x == 27) { // 27 est la touche Échap alert("Vous avez appuyé sur la touche Échap !"); } }
Exemple
Convertir la valeur Unicode en caractère (ne s'applique pas aux touches fonctionnelles) :
var x = event.which || event.keyCode; // Obtenir la valeur Unicode var y = String.fromCharCode(x); // Convertir la valeur en caractère
Pages associées
Référence HTML DOM :Attribut key de KeyboardEvent
Référence HTML DOM :Attribut keyCode de KeyboardEvent
Référence HTML DOM :Attribut charCode de KeyboardEvent