GrandFleet
GrandFleet

Reputation: 889

Use event.key instead of event.keyCode

So lets say that I have code that checks if an keypress was a number

if (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 ) {
// number entered, do something
} else if (e.keyCode === 8) {
// backspace pressed
} 

How would I go about changing these checks to use event.key as event.keyCode is depreciated. Is it as easy as I think it is?

In particular how to I use e.key with the backspace key

Upvotes: 1

Views: 1699

Answers (1)

Patrick Evans
Patrick Evans

Reputation: 42746

You just change it to use the name of the key being pressed. For letters it is the letter pressed, a = "a", A = "A", z = "z" etc. Number is the the string version of the number 1 = "1", 2 = "2" etc. For control keys it is the name of the key, ctrl = "Control", backspace = "Backspace", etc.

A list can be seen here

So if you are needing to test for number range you can get the key value and coerce it to a number and just do the applicable comparison, as for backspace just compare against the string "Backspace"

//coerce it to a number
numKey = +e.key;
if (!isNaN(numKey) && numKey >= 0 && numKey <= 9 ) {
// number entered, do something
} else if (e.key == "Backspace") {
// backspace pressed
} 

Upvotes: 1

Related Questions