Javascript 大写锁定脚本清理

Javascript 大写锁定脚本清理,javascript,javascript-events,capslock,Javascript,Javascript Events,Capslock,我想知道如果可能的话,是否有人能帮我清理这个代码;包括将两个功能合并为一个。我是javascript新手,所以我真的需要一些帮助 我能够让这个脚本运行得很好,我只是想知道它是否可以被改进和/或是否有我忽略的任何问题 脚本首先根据按键确定caps lock是打开还是关闭。确定caps lock状态后,按下caps lock键即可打开或关闭caps lock警告消息 谢谢 杰夫 //帽锁警告 var onOff=“”; 功能盖锁(e){ var kc=e.keyCode?e.keyCode:e.w

我想知道如果可能的话,是否有人能帮我清理这个代码;包括将两个功能合并为一个。我是javascript新手,所以我真的需要一些帮助

我能够让这个脚本运行得很好,我只是想知道它是否可以被改进和/或是否有我忽略的任何问题

脚本首先根据按键确定caps lock是打开还是关闭。确定caps lock状态后,按下caps lock键即可打开或关闭caps lock警告消息

谢谢

杰夫


//帽锁警告
var onOff=“”;
功能盖锁(e){
var kc=e.keyCode?e.keyCode:e.which;
var sk=e.shiftKey?e.shiftKey:((kc==16)?真:假);
var cl=document.getElementById('cl');
如果(onOff==“”){
//检查caps lock是否打开。

如果(((kc>=65&&kc=97&&kc=65&&kc=97&&kc我会在重写中思考

但首先,如何检测CapsLock是否打开

您可以检查按下的键,如果:

  • 按下的键为大写,且未按下shift,或
  • 按下的ket为小写,按下shift
像这样简单的方法会奏效:

(function () {
  var hint = document.getElementById('cl');

  var keypressHandler = function (e) {
    e = e || window.event;
    var keyCode =  e.keyCode || e.which,
    character = String.fromCharCode(keyCode),
    isLetter = /[a-z]/i.test(character), 
    capsLockOn = isLetter && (character === character.toUpperCase() && !e.shiftKey) || 
    // Case 1: capslock on, without shift pressed
                (character === character.toLowerCase() && e.shiftKey);
    // Case 2: capslock on, with shift pressed

    hint.style.display = capsLockOn ? '' : 'none'; // show or hide the 'hint'
  }

  // Bind keypress event to both inputs:
  document.getElementById('tb1').onkeypress = 
  document.getElementById('tb2').onkeypress = keypressHandler;
})();

用您的标记检查上述代码的示例。

小点:
((kc==16)?true:false)
——这可以替换为
(kc==16)
谢谢您提供的信息。我已根据您的建议更新了脚本。您的脚本是执行与我的脚本相同检查的另一种方法。检查键代码&如果按下了Shift键。我的脚本也执行反向检查(capslock关闭了吗?)它使用此开/关信息在按下capslock键时切换警告。您的不包括此功能。这样,消息会在capslock键按下后立即显示/隐藏。运行我的代码,键入一个字母,然后按capslock。消息会立即弹出或关闭。您的消息只在按下后出现和消失先唱卡普斯洛克,然后打一封信。小调我知道,但这就是我要找的。杰夫
(function () {
  var hint = document.getElementById('cl');

  var keypressHandler = function (e) {
    e = e || window.event;
    var keyCode =  e.keyCode || e.which,
    character = String.fromCharCode(keyCode),
    isLetter = /[a-z]/i.test(character), 
    capsLockOn = isLetter && (character === character.toUpperCase() && !e.shiftKey) || 
    // Case 1: capslock on, without shift pressed
                (character === character.toLowerCase() && e.shiftKey);
    // Case 2: capslock on, with shift pressed

    hint.style.display = capsLockOn ? '' : 'none'; // show or hide the 'hint'
  }

  // Bind keypress event to both inputs:
  document.getElementById('tb1').onkeypress = 
  document.getElementById('tb2').onkeypress = keypressHandler;
})();