Attributo keyCode dell'evento KeyboardEvent

Definizione e uso

L'attributo keyCode restituito da Evento onkeypress Codice di carattere Unicode del pulsante, o attivato onkeydown o Evento onkeyup Codice di pulsante Unicode.

Differenza tra i due tipi di codice:

  • Codice di carattere - Numero che rappresenta il carattere ASCII
  • Codice di tastiera - rappresenta il numero del tasto effettivo sulla tastiera

Questi tipi non sempre significano la stessa cosa. Ad esempio, i codici di tastiera per la lettera minuscola "w" e maiuscola "W" sono gli stessi, poiché la lettera premuta è la stessa ("W" = numero "87"), ma i codici di carattere sono diversi, poiché il carattere risultante è diverso ("w" o "W", ossia "119" o "87"). - Vedi di seguito ulteriori esempi per una migliore comprensione.

Suggerimento:Per sapere se l'utente ha premuto una tastiera stampabile (ad esempio "a" o "5"), è consigliabile utilizzare questa proprietà sull'evento onkeypress. Per sapere se l'utente ha premuto un tasto funzione (ad esempio "F1", "CAPS LOCK" o "Home"), utilizzare gli eventi onkeydown o onkeyup.

Nota:Nel Firefox, l'attributo keyCode non ha effetto sull'evento onkeypress (ritorna solo 0). Per una soluzione cross-browser, utilizzare Proprietà whichUtilizzato insieme a keyCode, ad esempio:

var x = event.which || event.keyCode;  // Utilizzare which o keyCode a seconda del supporto del browser

Suggerimento:Per una lista di tutti i caratteri Unicode, consulta la nostra Riferimento completo Unicode.

Suggerimento:Se si desidera convertire un valore Unicode in un carattere, utilizzare Metodo fromCharCode().

Nota:Questa proprietà è sola lettura.

Nota:Le proprietà keyCode e which sono fornite solo per la compatibilità. La nuova versione della specifica degli eventi DOM suggerisce di utilizzare l'attributo key (se disponibile).

Suggerimento:Se desideri sapere se è stato premuto il tasto "ALT", "CTRL", "META" o "SHIFT" durante l'evento di pressione tastiera, utilizza altKey,ctrlKey/,metaKey o shiftKey Proprietà.

Esempio

Esempio 1

Ottenere il valore Unicode della tastiera premuta:

var x = event.keyCode;

Prova da solo

Esempio 2

Utilizzando onkeypress e onkeydown per illustrare la differenza tra i codici di carattere e i codici di tastiera:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode;
  document.getElementById("demo").innerHTML = "Codice CARATTERE Unicode: " + char;
}
function uniKeyCode(event) {
  var key = event.keyCode;
  document.getElementById("demo2").innerHTML = "Codice KEY Unicode: " + key;
}

Quando si preme il tasto "a" sulla tastiera (senza usare Capslock), i risultati di char e key saranno:

Codice CARATTERE Unicode: 97
Codice KEY Unicode: 65

Prova da solo

Esempio 3

Se l'utente preme il tasto Escape, viene visualizzato un testo:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.keyCode;
  if (x == 27) {  // 27 è il tasto ESC
    alert("Hai premuto il tasto Escape!");
  }
}

Prova da solo

Esempio 4

Convertire il valore Unicode in un carattere (non applicabile ai tasti funzione):

var x = event.keyCode;                // Ottenere il valore Unicode
var y = String.fromCharCode(x);       // Convertire il valore in un carattere

Prova da solo

Sintassi

event.keyCode

Dettagli tecnici

Valore di ritorno: Valore numerico che rappresenta il codice Unicode del carattere o il codice di pulsante Unicode.
Versione DOM: Eventi DOM Level 2

Supporto del browser

Proprietà Chrome IE Firefox Safari Opera
keyCode Supporto Supporto Supporto Supporto Supporto

Pagine correlate

Manuale di riferimento HTML DOM:Proprietà key dell'oggetto KeyboardEvent

Manuale di riferimento HTML DOM:Proprietà charCode dell'oggetto KeyboardEvent

Manuale di riferimento HTML DOM:Proprietà which dell'oggetto KeyboardEvent