Caps Lock key code in JavaScript

For Caps Lock, event.key is CapsLock, event.code is CapsLock and the deprecated keyCode is 20. Press any key in the Key Code Finder to see its values live.

Updated

PropertyValue
event.keyCapsLock
event.codeCapsLock
event.keyCode / which (deprecated)20

How to detect Caps Lock

document.addEventListener('keydown', (event) => {
  if (event.key === "CapsLock") {
    // Caps Lock was pressed
  }
});

Use event.key to react to what the key means (it follows the keyboard layout) and event.code for its physical position, for example WASD in games. keyCode and which are deprecated: they still work, but their values differ between browsers and layouts.

How browsers treat Caps Lock

To warn users that Caps Lock is on in a password field, check event.getModifierState("CapsLock") on any key event — it reports the lock state, not just this key.

In React

<input onKeyDown={(e) => { if (e.key === "CapsLock") { /* … */ } }} />
JavaScript Keycode FinderPress any key and instantly see every property of the keyboard event, with a copy-ready keydown snippet for shortcuts.
Open the tool

Frequently asked questions

What is the keyCode for Caps Lock?
20. It’s deprecated, though: use event.key (“CapsLock”) or event.code (CapsLock) in new code.
What is the difference between event.key and event.code?
event.key is the character or action the key produces with the current layout; event.code is the physical key position, the same on every layout.
Should I use keydown or keypress?
keydown. The keypress event is deprecated and doesn’t fire for keys that don’t produce characters, such as Escape or the arrow keys.