ToetsenbordEvent welke eigenschap
Voorbeeld
Verkrijg de Unicode-waarde van de ingedrukte klaviertoets:
var x = event.which;
Meer "Probeer het zelf" voorbeelden hieronder.
Definitie en gebruik
De eigenschap who retourneert de Unicode-tekencode van de sleutel die de onkeypress- gebeurtenis heeft geactiveerd, of de Unicode-sleutelcode van de sleutel die de onkeydown- of onkeyup- gebeurtenis heeft geactiveerd.
Het verschil tussen de twee codetypes:
- Tekencodes - Een getal dat een ASCII-teken vertegenwoordigt
- Toetscodes - Een getal dat een echte toets op het toetsenbord vertegenwoordigt
Deze typen betekenen niet altijd hetzelfde; een kleine letter "w" en een hoofdletter "W" hebben bijvoorbeeld dezelfde toetsenbordcode, omdat de toets die op het toetsenbord wordt ingedrukt hetzelfde is (alleen "W" = het getal "87"), maar een andere tekencode omdat het resulterende teken anders is (ofwel "w" of "W", dat is "119" of "87") - Zie "Meer voorbeelden" hieronder om het beter te begrijpen.
Tip: Om erachter te komen of de gebruiker een afdrukbare toets indrukt (bijv. "a" of "5"), wordt aanbevolen om deze eigenschap te gebruiken op de onkeypress-gebeurtenis. Om erachter te komen of de gebruiker op een functietoets drukt (bijv. "F1", "CAPS LOCK" of "Home"), gebruikt u de gebeurtenis onkeydown of onkeyup.
Opmerking: de eigenschap welke niet wordt ondersteund in IE8 en eerder. Voor deze browserversies kunt u de eigenschap keyCode gebruiken . De eigenschap keyCode werkt echter niet op de onkeypress-gebeurtenis in Firefox. Voor een cross-browser oplossing kunt u de volgende code gebruiken:
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
Tip: Voor een lijst van alle Unicode-tekens, raadpleeg onze Complete Unicode Reference .
Tip: Als u de geretourneerde Unicode-waarde naar een teken wilt converteren, gebruikt u de methode fromCharCode() .
Opmerking: deze eigenschap is alleen-lezen.
Opmerking: zowel de eigenschap who als keyCode is alleen bedoeld voor compatibiliteit. In de nieuwste versie van de DOM Events-specificatie wordt aanbevolen om in plaats daarvan de eigenschap key te gebruiken (indien beschikbaar).
Tip: Als je wilt weten of de "ALT", "CTRL", "META" of "SHIFT"-toets is ingedrukt toen een toetsgebeurtenis plaatsvond, gebruik dan de eigenschap altKey , ctrlKey , metaKey of shiftKey .
Browserondersteuning
De getallen in de tabel geven de eerste browserversie aan die de eigenschap volledig ondersteunt.
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
Syntaxis
event.which
Technische details
Winstwaarde: | Een getal dat een Unicode-tekencode of de Unicode-sleutelcode voorstelt |
---|---|
DOM-versie: | DOM Level 2-evenementen |
Meer voorbeelden
Voorbeeld
Onkeypress en onkeydown gebruiken om de verschillen tussen tekencodes en toetsenbordcodes te demonstreren:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
Wanneer u op de "a"-toets op het toetsenbord drukt (geen caps lock gebruikt), is het resultaat van char en key :
Unicode CHARACTER code: 97
Unicode KEY code: 65
Voorbeeld
Waarschuw wat tekst als de gebruiker op de Escape-toets drukt:
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
Voorbeeld
Converteer de Unicode-waarde naar een teken (werkt niet voor functietoetsen):
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
Gerelateerde pagina's
HTML DOM-referentie: KeyboardEvent-sleutel Eigenschap
HTML DOM-referentie: KeyboardEvent keyCode Property
HTML DOM-referentie: KeyboardEvent charCode Property