在JavaScript中判断键盘的大写锁定键(Caps Lock)是否打开(附扫描枪相关规则)

来源:互联网 发布:お知らせいたします 编辑:程序博客网 时间:2024/05/16 09:18

1,在按钮中配置onkeypress

<input  name='test'  onkeypress ="testCapsLock(event)"   />

2,在JavaScript中判断

function  testCapsLock(e){     var valueCapsLock = e.keyCode ? e.keyCode:e.which; // 按键      var valueShift = e.shiftKey ? e.shiftKey:((valueCapsLock == 16 ) ? true : false ); // shift键是否按住     if (((valueCapsLock >= 65 && valueCapsLock <= 90 ) && !valueShift) // 输入了大写字母,并且shift键没有按住,说明Caps Lock打开    || ((valueCapsLock >= 97 && valueCapsLock <= 122 ) && valueShift)){// 输入了小写字母,并且按住 shift键,说明Caps Lock打开    return true;    } else {    return false;    }    }

也就是说,没按着shift,还输入了大写,或者按着shift还输入了小写,就判断为Caps Lock是打开的。

shift键的keyCode是16,除此之外,其他一些功能键的keyCode如下:

event.keyCode=32        空格  
event.keyCode=13        回车  
event.keyCode=27        Esc  
event.keyCode=16        Shift  
event.keyCode=17        Ctrl  
event.keyCode=18        Alt  


补充扫描枪在文本框的扫描的情况:

1,上面的代码对扫描枪录入依然有效。

2,扫描枪输入不依赖键盘,我把键盘拆下来之后扫描枪可以正常录入。

3,扫描枪扫描的结果会受到键盘的Caps Lock和shift键的影响。

      如果Caps Lock大写锁定打开,扫描枪扫描小写字母生成的条码,会输入大写字母,反之如果扫描大写字母生成的条码,会输入小写字母(输入规则同键盘)

      如果手动按着shift键,扫描枪扫描数字生成的条码,会输入数字键上方的字符(!@#$等,输入规则同键盘)