Attributo which dell'evento KeyboardEvent

Definizione e uso

L'attributo which restituisce il Evento onkeypress Il codice di carattere Unicode del pulsante, o il onkeydown o onkeyup Il codice di pulsante Unicode dell'evento di pulsante

La differenza tra i due tipi di codici:

  • Codice di carattere - rappresenta il numero ASCII del carattere
  • Codice di pulsante - rappresenta il numero effettivo della tastiera

Questi tipi non sempre significano la stessa cosa. Ad esempio, il codice della tastiera per la minuscola "w" e la maiuscola "W" sono uguali, poiché la tastiera premuta è la stessa ("W" = numero "87"), ma il codice del carattere è diverso, poiché il carattere risultante è diverso ("w" o "W", ossia "119" o "87") - si prega di consultare ulteriori esempi per una migliore comprensione.

Suggerimento:Se si desidera sapere se l'utente ha premuto una tastiera stampabile (ad esempio "a" o "5"), si consiglia di utilizzare questa proprietà sull'evento onkeypress. Per sapere se l'utente ha premuto una tastiera funzionale (ad esempio "F1", "CAPS LOCK" o "Home"), utilizzare gli eventi onkeydown o onkeyup.

Nota:IE8 e versioni precedenti non supportano l'attributo which. Per queste versioni di browser, puoi utilizzare l'attributo keyCode. Tuttavia, l'attributo keyCode non funziona per l'evento onkeypress in Firefox. Per una soluzione cross-browser, puoi utilizzare il seguente codice: }}

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

Suggerimento:Per l'elenco 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 versione più recente della specifica degli eventi DOM suggerisce di utilizzare l'attributo key (se disponibile).

Suggerimento:Se desideri sapere se sono stati premuti i tasti "ALT", "CTRL", "META" o "SHIFT" durante l'evento di pulsante, utilizza altKeyctrlKeymetaKey o shiftKey Proprietà.

Esempio

Ottieni il valore Unicode della chiave premuta:

var x = event.which;

Più esempi TIY sono disponibili nella parte inferiore della pagina.

Prova tu stesso

Sintassi

event.which

Dettagli tecnici

Valore di ritorno: Valore numerico che rappresenta il codice Unicode del carattere o il codice della tastiera Unicode.
Versione DOM: DOM Level 2 Events

Supporto del browser

I numeri nella tabella indicano la versione del browser che supporta completamente questa proprietà.

Proprietà Chrome IE Firefox Safari Opera
which Supportato 9.0 Supportato Supportato Supportato

Più esempi

Esempio

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; // event.keyCode è utilizzato nelle versioni IE8 e precedenti
  document.getElementById("demo").innerHTML = "Codice CARATTERE Unicode: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode è utilizzato nelle versioni IE8 e precedenti
  document.getElementById("demo2").innerHTML = "Codice KEY Unicode: " + key;
}

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

Codice CARATTERE Unicode: 97
Codice KEY Unicode: 65

Prova tu stesso

Esempio

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

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

Prova tu stesso

Esempio

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

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

Prova tu stesso

Pagine correlate

Manuale di riferimento HTML DOM:Proprietà key Evento KeyboardEvent

Manuale di riferimento HTML DOM:Proprietà keyCode Evento KeyboardEvent

Manuale di riferimento HTML DOM:Proprietà charCode Evento KeyboardEvent