Właściwość which wydarzenia KeyboardEvent

Definicja i użycie

which właściwość zwraca wywołujący Zdarzenie onkeypress znak klawisza Unicode, lub wywołujący onkeydown lub onkeyup Unicode kod klawisza wydarzenia klawisza

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

  • Kod znaku - reprezentuje liczbowy kod ASCII znaku
  • Kod klawisza - reprezentuje liczbowy klawisz 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 różne kodu znaku, ponieważ resulting znak jest inny ("w" lub "W", tj. "119" lub "87") - proszę zobaczyć więcej przykładów, aby lepiej zrozumieć to.

Wskazówka:Aby sprawdzić, czy użytkownik nacisnął klawisz do druku (np. "a" lub "5"), zaleca się użycie tej właściwości w wydarzeniu onkeypress. Aby sprawdzić, czy użytkownik nacisnął klawisz funkcyjny (np. "F1", "CAPS LOCK" lub "Home"), użyj wydarzeń onkeydown lub onkeyup.

Komentarz:Wersje IE8 i wcześniejsze nie obsługują właściwości which. Dla tych wersji przeglądarki możesz użyć właściwości keyCode. Jednak właściwość keyCode nie działa dla zdarzenia onkeypress w Firefox. Aby uzyskać rozwiązanie przeglądarkowe, możesz użyć następującego kodu:

var x = event.which || event.keyCode;  // Używaj which czy keyCode, w zależności od wsparcia przeglądarki

Wskazówka:Aby uzyskać listę wszystkich znaków Unicode, zapoznaj się z naszym Pełna referencja Unicode.

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

Komentarz:Właściwość tylko do odczytu.

Komentarz:Dostarczenie właściwości keyCode i which jest tylko dla zgodności. Najnowsza wersja specyfikacji DOM events zaleca użycie właściwości key (jeśli dostępna).

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

Przykład

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

var x = event.which;

Poniżej strony znajdują się więcej przykładów TIY.

Spróbuj sam

Gramatyka

event.which

Szczegółowe informacje techniczne

Zwrócona wartość: Wartości liczbowe, które reprezentują kod znaku Unicode lub kod klawisza klawiatury Unicode.
Wersja DOM: DOM Level 2 Events

Wsparcie przeglądarki

Liczby w tabeli wskazują pierwszą wersję przeglądarki, która w pełni obsługuje ten atrybut.

Atrybuty Chrome IE Firefox Safari Opera
which Wspierane 9.0 Wspierane Wspierane Wspierane

Więcej przykładów

Przykład

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; // event.keyCode używany w IE8 i wcześniejszych wersjach
  document.getElementById("demo").innerHTML = "Kod CHAR Unicode: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode używany w IE8 i wcześniejszych wersjach
  document.getElementById("demo2").innerHTML = "Kod KEY Unicode: " + key;
}

Naciśnij klawisz "a" na klawiaturze (nie używając Capslock), wyniki char i key będą:

Kod CHAR Unicode: 97
Kod KEY Unicode: 65

Spróbuj sam

Przykład

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

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode używany w IE8 i wcześniejszych wersjach
  if (x == 27) {  // 27 to klawisz ESC
    alert ("Naciśnięto klawisz Escape!");
  }
}

Spróbuj sam

Przykład

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

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

Spróbuj sam

Strony związane

Przeglądarka HTML DOM:Atrybut key KeyboardEvent

Przeglądarka HTML DOM:Atrybut keyCode KeyboardEvent

Przeglądarka HTML DOM:Atrybut charCode KeyboardEvent