js 按键事件判断capslock是否开启
2014-08-14 16:17
591 查看
最近有用到输入密码时检查 capslock 是否开启的一个检查,看了一些博客,发现有通过keyCode返回的值来做检查的,其实这种做法不对,在这里说下我的实现方法:
首先看下keyCode对应的键值对:
charCodeAt() ,
该方法可返回指定位置的字符的 Unicode 编码 , 通过与shift键对于的keycode,就可以判断capslock是否开启了
参数是对应的输入框DOM对象
首先看下keyCode对应的键值对:
keycode 8 = BackSpace BackSpace keycode 9 = Tab Tab keycode 12 = Clear keycode 13 = Enter keycode 16 = Shift_L keycode 17 = Control_L keycode 18 = Alt_L keycode 19 = Pause keycode 20 = Caps_Lock keycode 27 = Escape Escape keycode 32 = space space keycode 33 = Prior keycode 34 = Next keycode 35 = End keycode 36 = Home keycode 37 = Left keycode 38 = Up keycode 39 = Right keycode 40 = Down keycode 41 = Select keycode 42 = Print keycode 43 = Execute keycode 45 = Insert keycode 46 = Delete keycode 47 = Help keycode 48 = 0 equal braceright keycode 49 = 1 exclam onesuperior keycode 50 = 2 quotedbl twosuperior keycode 51 = 3 section threesuperior keycode 52 = 4 dollar keycode 53 = 5 percent keycode 54 = 6 ampersand keycode 55 = 7 slash braceleft keycode 56 = 8 parenleft bracketleft keycode 57 = 9 parenright bracketright keycode 65 = a A keycode 66 = b B keycode 67 = c C keycode 68 = d D keycode 69 = e E keycode 70 = f F keycode 71 = g G keycode 72 = h H keycode 73 = i I keycode 74 = j J keycode 75 = k K keycode 76 = l L keycode 77 = m M keycode 78 = n N keycode 79 = o O keycode 80 = p P keycode 81 = q Q keycode 82 = r R keycode 83 = s S keycode 84 = t T keycode 85 = u U keycode 86 = v V keycode 87 = w W keycode 88 = x X keycode 89 = y Y keycode 90 = z Z对于同一个字母的大小写,keycode返回的值相同,所以通过检查 shift 键和keycode返回的值,是行不通的,后来查到函数
charCodeAt() ,
该方法可返回指定位置的字符的 Unicode 编码 , 通过与shift键对于的keycode,就可以判断capslock是否开启了
function capslockonoff($input){ $input.keyup(function(event){ var e = event||window.event; var keyvalue = e.keyCode ? e.keyCode : e.which; var shifKey = e.shiftKey ? e.shiftKey:((keyvalue == 16) ? true : false); var strlen = $input.val().length; if(strlen){ var uniCode = $input.val().charCodeAt($input.val().length-1); if(keyvalue>=65 && keyvalue<=90){ //如果是字母键 if(((uniCode >= 65 && uniCode <= 90) && !shifKey)||((uniCode >= 97 && uniCode <= 122) && shifKey)){ return true; //开启 }else{ return false; //未开启 } } } }); }
参数是对应的输入框DOM对象
相关文章推荐
- 原生JS判断网站服务器是否开启,如果开启就跳转到网站
- js判断是否绑定了事件。
- JS中onkeydown, onkeyup, onblur 三个事件对比 并js实现判断文本框是否为空和按Enter键实现Tab换行
- js实现判断大写锁定是否开启(转)
- js判断浏览器是否安装Flash插件,并提示安装或开启
- js实现判断大写锁定是否开启
- [Js]判断iframe内的页面是否滚动到底部触发事件
- Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
- js判断iframe内的网页是否滚动到底部触发事件
- JS判断是否开启大小写
- PB中如何控制判断大写以及小键盘指示灯是否开启并与按键协调工作
- JS判断浏览器是否支持触屏事件
- js判断iframe内的网页是否滚动到底部触发事件
- js判断图片是否完全加载的方法(jquery的error事件妙用)
- js实现判断大写锁定是否开启
- 判断Cookies是否处于开启状态
- js判断键盘按键
- 用js判断浏览器是否是IE的比较好的办法
- 判断客户端是否支持js
- 用js判断用户浏览器是否是XP SP2的IE6