keydown vs keypress vs keyup
The order of events
When user presses a key or combination of different keys,
keydown
,keypress
andkeyup
are triggered in that order:- The
keydown
event is triggered first when user presses a key - The
keyup
event is triggered last when user releases a key - In between, the
keypress
event is triggered
- The
These events serve different purposes.
The
keydown
andkeyup
events are often used to handle the physical keys, while thekeypress
event is used to handle characters which are being typed.The
keypress
ignores keys such asdelete
,arrows
,page up
,page down
,home
,end
,ctrl
,alt
,shift
,esc
, etc. So, if we need to handle those keys, it's better to use eitherkeydown
orkeyup
event.The sample code below listens on the
keydown
event, and closes the modal if the Esc key is pressed:document.addEventListener('keydown', function (e) {
if (e.key === 'Escape') {
// Close the modal
}
});The
keydown
andkeypress
events fire multiple times if user press and hold a key.While
keyup
fires only once when user releases the key.