
Html on keyup windows#
For instance, on Windows Alt +F4 closes the current browser window. Preventing the default action on keydown can cancel most of them, with the exception of OS-based special keys.

If a key is being pressed for a long enough time, it starts to “auto-repeat”: the keydown triggers again and again, and then when it’s released we finally get keyup. Or we want a hotkey to work even after a language switch? Then de may be better. So hotkeys that rely on it work well even in case of a language switch.ĭo we want to handle layout-dependant keys? Then event.key is the way to go. On the other hand, de has the benefit of staying always the same, bound to the physical key location. To reliably track layout-dependent characters, event.key may be a better way. You can find the list in the specification. keyA, keyQ, keyZ (as we’ve seen), and doesn’t happen with special keys such as Shift. Luckily, that happens only with several codes, e.g. Same letters in different layouts may map to different physical keys, leading to different codes. So, de may match a wrong character for unexpected layout. The specification explicitly mentions such behavior. If we check de = 'KeyZ' in our code, then for people with German layout such test will pass when they press Y. Literally, de will equal KeyZ for people with German layout when they press Y. So it makes sense to check de, it’s always the same.įor the same key, US layout has “Z”, while German layout has “Y” (letters are swapped).

If the visitor has several languages in OS and switches between them, the same key gives different characters. On one hand, the value of event.key is a character, it changes depending on the language. There’s a dilemma here: in such a listener, should we check the value of event.key or de? We can set a listener on keydown and check which key is pressed. Most text editors hook the “Undo” action on it. Let’s say, we want to handle a hotkey: Ctrl +Z (or Cmd +Z for Mac). The de tells us exactly which one was pressed, and event.key is responsible for the “meaning” of the key: what it is (a “Shift”). For instance, most keyboards have two Shift keys: on the left and on the right side. Please note that de specifies exactly which key is pressed. For those keys, event.key is approximately the same as de: Key What if a key does not give any character? For instance, Shift or F1 or others. The check like de="keyZ" won’t work: the first letter of "Key" must be uppercase. Please evade mistypes: it’s KeyZ, not keyZ.

Seems obvious, but people still make mistakes.

That will become the value of event.key, while de is always the same: "KeyZ". If a user works with different languages, then switching to another language would make a totally different character instead of "Z". The event.key is exactly the character, and it will be different. That gives us two different characters: lowercase z and uppercase Z.
Html on keyup code#
The key property of the event object allows to get the character, while the code property of the event object allows to get the “physical key code”.įor instance, the same key Z can be pressed with or without Shift. The keydown events happens when a key is pressed down, and then keyup – when it’s released. Let input1 = document.Focus on the input field and press a key. Let button = document.getElementById('myBtn') JavaScript file: let input = document.getElementById('text-area') I tried using "keydown" which gets the console.log printed but doesn't let me enter anything in the input field. I am trying to imitate the behaviour of "Enter" key in my Code by using "Tab" key.
