KeyboardEvent keyCode 属性

定义和用法

keyCode 属性返回触发 onkeypress begivenhed 的按键的 Unicode 字符代码,或触发 onkeydown eller onkeyup begivenhed 的按键的 Unicode 按键代码。

两种代码类型的区别:

  • 字符代码 - 代表 ASCII 字符的数字
  • Tastekode - repræsenterer det numeriske tal for den faktiske tast på tastaturet

Disse typer betyder ikke nødvendigvis det samme. For eksempel er de numeriske tastekoder for småt "w" og stort "W" de samme, fordi tasten, der er trykket ned, er den samme ("W" = tal "87"), men tegnkode er forskellige, fordi det resulterende tegn er forskelligt ("w" eller "W", altså "119" eller "87") - se de flere eksempler nedenfor for at få en bedre forståelse af dette.

Bemærk:For at finde ud af, om brugeren har trykket på en trykbar tast (f.eks. "a" eller "5"), anbefales det at bruge denne egenskab på onkeypress-ændelsen. For at finde ud af, om brugeren har trykket på en funktionstast (f.eks. "F1", "CAPS LOCK" eller "Home"), brug onkeydown eller onkeyup-ændelser.

Kommentar:I Firefox fungerer keyCode-egenskaben ikke for onkeypress-ændelser (returnerer kun 0). For en krosbrowserløsning skal du bruge which-egenskabBrug sammen med keyCode, f.eks.:

var x = event.which || event.keyCode;  // Brug af which eller keyCode afhænger af browserens støtte

Bemærk:For en liste over alle Unicode-tegn, se vores Komplet Unicode reference.

Bemærk:Hvis du vil konvertere en Unicode-værdi til et tegn, skal du bruge fromCharCode() metoden.

Kommentar:Denne egenskab er kun læsebeskyttet.

Kommentar:keyCode- og which-egenskaber er kun til kompatibilitet. Den nyeste version af DOM-ændelsestandarden anbefaler at bruge key-egenskaben i stedet (hvis tilgængelig).

Bemærk:Hvis du vil vide, om "ALT", "CTRL", "META" eller "SHIFT"-tasten er blevet trykket ned ved en tastaturhændelse, brug altKeyogctrlKey/ ellermetaKey eller shiftKey Egenskaber.

Eksempel

Eksempel 1

Få Unicode-værdien for den trykte tast, der er trykket ned:

var x = event.keyCode;

Prøv det selv

Eksempel 2

Brug af onkeypress og onkeydown til at demonstrere forskellen mellem tegnkode og tastaturkode:

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

Når du trykker på tasten "a" på tastaturet (uden at bruge Capslock), vil char og keys resultaterne være:

Unicode CHARACTER code: 97
Unicode KEY code: 65

Prøv det selv

Eksempel 3

Hvis brugeren trykker Escape-tasten, vises nogle tekst:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.keyCode;
  if (x == 27) {  // 27 er ESC tasten
    alert("Du trykkede Escape-tasten!");
  }
}

Prøv det selv

Eksempel 4

Konverter Unicode værdien til et tegn (ikke til funktionstaster):

var x = event.keyCode;                // Få Unicode værdien
var y = String.fromCharCode(x);       // Konverter værdien til et tegn

Prøv det selv

Syntaks

event.keyCode

Tekniske detaljer

Returværdi: Numeriske værdier, der repræsenterer Unicode tegnkode eller Unicode tastekode.
DOM version: DOM Level 2 Events

Browser support

Egenskaber Chrome IE Firefox Safari Opera
keyCode Support Support Support Support Support

Relaterede sider

HTML DOM Reference Manual:KeyboardEvent key egenskab

HTML DOM Reference Manual:KeyboardEvent charCode egenskab

HTML DOM Reference Manual:KeyboardEvent which egenskab