Detect Caps Lock with JavaScript

Date:

Share post:

Anyone is capable of having their caps lock key on at any given time without realizing so. Users can easily spot unwanted caps lock when typing in most inputs, but when using a password input, the problem isn’t so obvious. That leads to the user’s password being incorrect, which is an annoyance. Ideally developers could let the user know their caps lock key is activated.

To detect if a user has their keyboard’s caps lock turn on, we’ll employ KeyboardEvent‘s getModifierState method:

document.querySelector('input[type=password]').addEventListener('keyup', function (keyboardEvent) {
    const capsLockOn = keyboardEvent.getModifierState('CapsLock');
    if (capsLockOn) {
        // Warn the user that their caps lock is on?
    }
});

I’d never seen getModifierState used before, so I explored the W3C documentation to discover other useful values:

dictionary EventModifierInit : UIEventInit {
  boolean ctrlKey = false;
  boolean shiftKey = false;
  boolean altKey = false;
  boolean metaKey = false;

  boolean modifierAltGraph = false;
  boolean modifierCapsLock = false;
  boolean modifierFn = false;
  boolean modifierFnLock = false;
  boolean modifierHyper = false;
  boolean modifierNumLock = false;
  boolean modifierScrollLock = false;
  boolean modifierSuper = false;
  boolean modifierSymbol = false;
  boolean modifierSymbolLock = false;
};

getModifierState provides a wealth of insight as to the user’s keyboard during key-centric events. I wish I had known about getModifier earlier in my career!

Request Metrics real user monitoring
Request Metrics real user monitoring
Request Metrics real user monitoring
  • Serving Fonts from CDN

    Serving Fonts from CDN

    For maximum performance, we all know we must put our assets on CDN (another domain).  Along with those assets are custom web fonts.  Unfortunately custom web fonts via CDN (or any cross-domain font request) don’t work in Firefox or Internet Explorer (correctly so, by spec) though…

  • CSS 3D Folding Animation
  • Link Nudging with CSS3 Animations

    Link Nudging with CSS3 Animations

    One of the more popular and simple effects I’ve featured on this blog over the past year has been linking nudging.  I’ve created this effect with three flavors of JavaScript:  MooTools, jQuery, and even the Dojo Toolkit.  Luckily CSS3 (almost) allows us to ditch…

  • Comment Preview Using MooTools

    Comment Preview Using MooTools

    Comment previewing is an awesome addition to any blog. I’ve seen really simple comment previewing and some really complex comment previewing. The following is a tutorial on creating very basic comment previewing using MooTools. The XHTML You can set up your XHTML any way you’d like.


Source link
spot_img

Related articles

Apple Patches Everything, Again – SANS Internet Storm Center

CVE-2025-31199: An app may be able to access sensitive user data. Affects Spotlight       x           CVE-2025-43292: An app may be able to...

AI Content Moderation Consulting Solutions for Enterprises

For businesses looking to stay ahead of the curve, leveraging AI to automate and scale content moderation...

Meta’s Ray-Ban Display Have an App Problem

If you’ve used the Meta Ray-Ban Display for any extended...