You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript检测Caps Lock状态,修复关闭时无提示问题

解决Caps Lock状态提示不显示关闭状态的问题

核心问题出在你的JavaScript代码的else分支中,你将提示文本设为空字符串,而非需求要求的“WARNING! caps lock is off”。直接修改该分支内容即可解决问题:

修改后的JavaScript代码

window.addEventListener('keyup', event => {
  var isCaps = event.getModifierState('CapsLock');
  const alertElement = document.getElementById('alert');
  if (isCaps) {
    alertElement.innerText = "WARNING! caps lock is on";
  } else {
    // 替换空字符串为关闭状态提示文本
    alertElement.innerText = "WARNING! caps lock is off";
  }
})

额外优化建议

全局监听keyup事件会导致页面任意位置按下Caps Lock都触发提示,可能影响用户体验。建议改为仅在确认密码输入框上监听事件,仅当用户操作该输入框时显示状态提示:

修改后的HTML代码

<form action="#" method="post">
  <h1>login Form</h1>
  <div>
    <label for="username">username</label>
    <input id="username" type="text" name="username">
  </div>
  <div>
    <label for="password">password</label>
    <input type="password" name="password" id="password">
  </div>
  <div>
    <label>confirm password</label>
    <!-- 添加针对该输入框的keyup事件监听 -->
    <input type="password" name="confirm_password" id="confirm_password" onkeyup="checkCapsLock(event)">
    <br>
    <error id="alert"> </error>
  </div>
  <div>
    <button type="button">submit</button>
  </div>
</form>

对应优化后的JavaScript代码

function checkCapsLock(event) {
  var isCaps = event.getModifierState('CapsLock');
  const alertElement = document.getElementById('alert');
  if (isCaps) {
    alertElement.innerText = "WARNING! caps lock is on";
  } else {
    alertElement.innerText = "WARNING! caps lock is off";
  }
}

内容的提问来源于stack exchange,提问作者khodidas patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:31:09