Property keyCode eventu KeyboardEvent

Definicja i użycie

Property keyCode zwraca wyzwalający Zdarzenie onkeypress Klawisza Unicode kodu znaku, lub wyzwalanie onkeydown lub Zdarzenie onkeyup Klawisza Unicode klawisza.

Różnica między dwoma typami kodów:

  • Kod znakowy - liczba reprezentująca znak ASCII
  • Kod klawisza - reprezentuje liczbę rzeczywistego klawisza na klawiaturze

Te typy nie zawsze oznaczają to samo. Na przykład, mała "w" i duża "W" mają ten sam kod klawisza klawiatury, ponieważ naciśnięty klawisz jest ten sam ("W" = liczba "87"), ale kod znaku jest inny, ponieważ resultingowy znak jest inny ("w" lub "W", czyli "119" lub "87") - sprawdź więcej przykładów, aby lepiej zrozumieć to.

Wskazówka:Aby dowiedzieć się, czy użytkownik nacisnął drukowalny klawisz (np. "a" lub "5"), zaleca się użycie tego atrybutu w zdarzeniu onkeypress. Aby dowiedzieć się, czy użytkownik nacisnął klawisz funkcyjny (np. "F1", "CAPS LOCK" lub "Home"), użyj zdarzeń onkeydown lub onkeyup.

Komentarz:W Firefox atrybut keyCode nie działa dla zdarzenia onkeypress (zwraca tylko 0). Dla rozwiązania międzyprzeglądarkowego, użyj Atrybut whichRazem z keyCode, na przykład:

var x = event.which || event.keyCode;  // Używaj which czy keyCode zależy od obsługi przeglądarki

Wskazówka:O pełnej liście wszystkich znaków Unicode, zapoznaj się z naszą Pełna referencja Unicode.

Wskazówka:Jeśli chcesz przekształcić wartość Unicode na znak, użyj Metoda fromCharCode().

Komentarz:Ten atrybut jest jedynie odczytywany.

Komentarz:Dostarczenie atrybutów keyCode i which jest tylko dla zgodności. Najnowsza wersja specyfikacji DOM wydarzeń zaleca użycie atrybutu key (jeśli dostępny).

Wskazówka:Jeśli chcesz wiedzieć, czy naciśnięto klawisz "ALT", "CTRL", "META" lub "SHIFT" podczas zdarzenia naciśnięcia klawisza, użyj altKeyictrlKey/ orazmetaKey lub shiftKey Atrybuty.

Przykład

Przykład 1

Pobierz wartość Unicode naciśniętego klawisza klawiatury:

var x = event.keyCode;

Spróbuj sam

Przykład 2

Używaj onkeypress i onkeydown, aby pokazać różnicę między kodami znaków a kodami klawiatury:

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

Naciśnięcie klawisza "a" na klawiaturze (nie używając Capslock) spowoduje, że wynikiem char i key będzie:

Kod CHAR Unicode: 97
Kod KEY Unicode: 65

Spróbuj sam

Przykład 3

Jeśli użytkownik naciśnie klawisz Escape, wyświetl pewien tekst:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.keyCode;
  if (x == 27) {  // 27 to klawisz ESC
    alert("Naciśnięto klawisz Escape!");
  }
}

Spróbuj sam

Przykład 4

Konwersja wartości Unicode na znak (nie dotyczy klawiszy funkcyjnych):

var x = event.keyCode;                // Pobierz wartość Unicode
var y = String.fromCharCode(x);       // Konwersja wartości na znak

Spróbuj sam

Gramatyka

event.keyCode

Szczegóły techniczne

Zwrócona wartość: Wartość liczbowa, która reprezentuje kod znaku Unicode lub kod klawisza Unicode.
Wersja DOM: DOM Level 2 Events

Obsługa przeglądarek

Atrybuty Chrome IE Firefox Safari Opera
keyCode Wsparcie Wsparcie Wsparcie Wsparcie Wsparcie

Strony związane

Przeglądarka HTML DOM Referencja:Atrybut key w KeyboardEvent

Przeglądarka HTML DOM Referencja:Atrybut charCode w KeyboardEvent

Przeglądarka HTML DOM Referencja:Atrybut which w KeyboardEvent