Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Back to Basics – Using Keyboard Events in JavaScript

DZone's Guide to

Back to Basics – Using Keyboard Events in JavaScript

· Web Dev Zone ·
Free Resource

Learn how error monitoring with Sentry closes the gap between the product team and your customers. With Sentry, you can focus on what you do best: building and scaling software that makes your users’ lives better.

A few months ago I was implementing a POC for a customer and was in a need for reading keyboard presses through JavaScript. I was asked the same question today so I guess that means a post.

The Scenario

You need to read all the keyboard key presses up until the Enter key is used.
You should output the typed word without the Enter key.

Wiring The Events

In order to listen to key presses, you will wire an event listener to the keypress event. That event listen to all key presses and in its handler you will store the key pressed (but won’t store the Enter key press). Here is an example for doing that:

window.addEventListener('keypress', function (e) {
    if (e.keyCode !== 13) {
        chars.push(e.key);
    }
}, false);

In the example, you wire the keypress event. If the key press isn’t Enter ( Enter key code is 13), you push the pressed key to a character array.

In order to catch the Enter key press and output the typed word, you will wire an event listener to the keyup event. That event listen to the end of key pressing (when the user stop pressing a key). Here is an example for wiring the event:

window.addEventListener('keyup', function (e) {
    if (e.keyCode === 13) {
        container.textContent = chars.join('');
        chars = [];
    }
}, false);

In the example, you wire the keyup event. If the key is released, you check whether the pressed key was Enter. If the key was Enter, you put the content of the characters array into a container div and you clear the array.

The Full Example

Here is all the code for the example:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Keyboard Reading</title>

    <script type="text/javascript">
    (function () {
        function contentLoaded () {    
                var chars = [],
                container = document.getElementById('container');

                window.addEventListener('keypress', function (e) {
                if (e.keyCode !== 13) {
                            chars.push(e.key);
                }
                }, false);

                window.addEventListener('keyup', function (e) {
                    if (e.keyCode === 13) {
                        container.textContent = chars.join('');
                chars = [];
                       }
                }, false);
        }

        window.addEventListener('DOMContentLoaded', contentLoaded, false); 
    }());
    </script>
</head>
<body>
    <div id="container">
    </div>
</body>
</html>

Summary

In order to read keyboard pressed keys in JavaScript you can use events such as keypress and keyup. The example that I showed is very basic but it was the starting point for reading data sent from a barcode reader that was acting like a keyboard in the POC I mentioned.

What’s the best way to boost the efficiency of your product team and ship with confidence? Check out this ebook to learn how Sentry's real-time error monitoring helps developers stay in their workflow to fix bugs before the user even knows there’s a problem.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}