用 JavaScript 检测大写锁定键的状态

开发 前端
有的时候尤其是在进行密码输入时,我们需要检查键盘上的 Caps Lock 键是否被打开,并通知用户。

有的时候尤其是在进行密码输入时,我们需要检查键盘上的 Caps Lock 键是否被打开,并通知用户。这时可以通过用 KeyboardEvent.getModifierState() 方法 CapsLock 的值来执行此操作。

[[388497]]

换句话说,我们必须侦听元素上的键盘事件才能检查 Caps Lock 键的状态:

HTML:

  1. <form> 
  2.   <label for="username">Username:</label> 
  3.   <input id="username" name="username"> 
  4.  
  5.   <label for="password">Password:</label> 
  6.   <input id="password" name="password" type="password"> 
  7.   <span id="password-message" style="display: none">Caps Lock is on</span> 
  8. </form> 

 

JavaScript:

  1. const el = document.getElementById('password'); 
  2. const msg = document.getElementById('password-message'); 
  3.  
  4. el.addEventListener('keyup', e => { 
  5.   msg.style = e.getModifierState('CapsLock') 
  6.     ? 'display: block' 
  7.     : 'display: none'; 
  8. }); 

通过上面的例子可以看到,在选择的元素上使用了 'keyup' 事件,然后调用 KeyboardEvent.getModifierState() 并检查 'CapsLock' 键的状态。'keydown'和 'keypress' 也能起到类似的作用。但是在多台设备上进行测试后,似乎应该首选 keyup 方法,因为它在不同的操作系统和浏览器上的效果更好。

 

责任编辑:赵宁宁 来源: 前端先锋
相关推荐

2018-12-18 09:40:27

LinuxCtrl命令

2021-05-23 12:03:15

Linux映射键盘

2021-08-04 07:47:17

键盘CapsLock 退出键

2023-01-03 08:17:04

JavaScript检测用户

2018-08-22 09:00:00

Linux锁定键盘包管理器

2009-08-12 11:40:39

双检测锁定

2021-04-29 00:08:21

JavaScript 检测文件

2017-10-27 07:11:38

TomcatUPDOWN

2011-03-16 11:12:06

Iptables

2011-03-10 14:28:45

Access2007日期大写

2011-09-08 18:28:03

windowsXP锁定状态

2009-09-24 16:22:50

Hibernate自动

2022-03-25 14:47:24

Javascript数据类型开发

2010-05-24 14:24:27

MySQL查询

2009-12-29 09:11:54

Windows 7系统锁定

2022-09-04 15:40:39

JavaScrip状态模式软件

2010-05-19 14:26:33

IIS FTP

2021-03-27 11:02:04

JavaScript队列编程语言

2022-09-05 09:46:34

Python核酸检测

2011-05-25 14:34:26

javascript
点赞
收藏

51CTO技术栈公众号