js-PC版监听键盘大小写事件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了js-PC版监听键盘大小写事件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1763字,纯文字阅读大概需要3分钟。
内容图文
//获取键盘按键事件,可以使用keyup。
//问题:获取到键盘的按下Caps lock键时,不能知道当前状态是大写、还是小写状态。
//解决:
设置一个全局判断大小写状态的 标志:isCapital = -1; //是否大写 -1:无状态、0:小写、1:大写
给window加一个监听键盘事件方便判断大小写状态,
给所有的输入都加上键盘监听事件,监听大小写切换。
如何判断键盘大小写?
首先我们不可能直接从用户按下Caps lock键而去判断用户切换大小写状态,只能从用户输入的每个字去判断。
另外注意 通过组合键按下的大小写.
a-z的keyCode 65-90
拿到keyCode不能判断其是大小写,只能再从光标的位置拿到它的值,然后用charCodeAt去转。
最后判断其是否在是大写。
提示我是用layer弹窗插件。
示例:
// 监听大小写。。。。 // 必须全局监听 var isCapital = -1; //是否大写 -1:无状态、0:小写、1:大写 jQuery(window).keyup(changeCapsLock);//监听全局//监听某个input jQuery(‘input[name=loginp]‘, loginForm).on(‘keyup‘, function(e){ var lastVal = ‘‘; if (e.keyCode >= 65 && e.keyCode <= 90) { console.log(e); lastVal = jQuery(this).val().substr(getCursortPosition.call(this,this)-1, 1).charCodeAt(0); if ( lastVal == e.keyCode) { e.shiftKey ? ‘‘ : isCapital = 1; tipsCapsLock.call(this); }else{ e.shiftKey ? ‘‘ : isCapital = 0; layer.closeAll(‘tips‘); } }else{ changeCapsLock.call(this, e); } }); //是否切换大小写function changeCapsLock(e){ e.stopPropagation(); if (e.keyCode !== 20) {return;} switch(isCapital){ case -1: break; case 0: isCapital = 1; tipsCapsLock.call(this,this); if (this !== window) tipsCapsLock.call(this); break; case 1: if (this !== window) layer.closeAll(‘tips‘); isCapital = 0; break; } } //提示大小写function tipsCapsLock(){ layer.tips(‘大写锁定已打开,可能会使您输入错误的密码。‘, this); } //得到当前输入光标的位置function getCursortPosition (ctrl) { var CaretPos = 0; // IE Supportif (document.selection) { ctrl.focus (); var Sel = document.selection.createRange (); Sel.moveStart (‘character‘, -ctrl.value.length); CaretPos = Sel.text.length; } // Firefox supportelseif (ctrl.selectionStart || ctrl.selectionStart == ‘0‘) CaretPos = ctrl.selectionStart; return (CaretPos); }
原文:http://www.cnblogs.com/songbyjson/p/5016928.html
内容总结
以上是互联网集市为您收集整理的js-PC版监听键盘大小写事件全部内容,希望文章能够帮你解决js-PC版监听键盘大小写事件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。