我有两个挑战,
在页面加载时,我想显示一条警告,说“已开启”。
用户仍然按下shift +键或Caps on +键 - 我想通过错误。
我在谷歌搜索并找到解决方案,但它不起作用。有人帮我解决这个问题吗?请使用大写锁定开启/关闭刷新页面以获取当前状态。什么都行不通。
以下是我从谷歌搜索获得的功能:
function capLock(e){
kc = e.keyCode?e.keyCode:e.which;
sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk))
console.log('caps lock on')
else
console.log('caps lock off');
}
$('#password').on('keypress', function(e){
capLock(e.which)
})
答案 0 :(得分:0)
<强> Demo 强> 不要通过e.which。你必须通过事件
function capLock(e) {
kc = e.keyCode ? e.keyCode : e.which;
sk = e.shiftKey ? e.shiftKey : ((kc == 16) ? true : false);
if (((kc >= 65 && kc <= 90) && !sk) || ((kc >= 97 && kc <= 122) && sk)) console.log('caps lock on')
else console.log('caps lock off');
}
$('#password').on('keypress', function (e) {
capLock(e)
});
答案 1 :(得分:0)
实际上,在调用e.which
函数时,您正在传递e
而不是capLock
。
尝试此操作:在调用e
函数时仅传递事件capLock
。
$('#password').on('keypress', function(e){
capLock(e);
})
答案 2 :(得分:0)
我用一种新方法在按键上找到字母:这是我的解决方案:
$('#password').keypress(function(e) {
var Caps = null;
var s = String.fromCharCode( e.which );
if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey ) {
Caps = true;
} else {
Caps = false;
}
if(s.toUpperCase() === s){
Caps = true;
}else{
Caps = false;
}
if(Caps){
console.log('no use of the caps letter');
}
});
任何评论或更正或更新..预期。感谢