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 to build modern digital experience apps with Crafter CMS. Download this eBook now. Brought to you in partnership with Crafter Software

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.

Crafter is a modern CMS platform for building modern websites and content-rich digital experiences. Download this eBook now. Brought to you in partnership with Crafter Software.

Topics:

Published at DZone with permission of Gil Fink, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

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

{{ parent.tldr }}

{{ parent.urlSource.name }}