1.初始化CapsLock状态。暂找不到js判断CapsLock状态的方法,于是只能想办法从java下手。引用:“JavaScript只提供对键盘的监听事件,它无法获取客户端硬件信息(IE下可以通过ActiveXObject对象获得),更无法获得客户端硬件的状态,这是JavaScript语言的限制,所以它只能监听用户对键盘的响应事件,才能判断用户当前的按键是处于大小还是小写状态。目前网络上所有判断大小写都是监听用户的按钮才能得以判断”。
2. js监听
var openIndex;
function show() {
openIndex = layer.tips('大写锁定:开', '.input-password', {
tips: [4, '#78BA32'],
time: 10000
});
}
function hide() {
layer.close(openIndex);
}
var isCapslockOn = execute("getCpasLockStatus", null);
function checkCapsLock_keydown(e) {
var keyCode = window.event ? e.keyCode : e.which;
if (keyCode == 20 && isCapslockOn == true){
isCapslockOn = false;
}else if (keyCode == 20 && isCapslockOn == false){
isCapslockOn = true;
}
}
function tip() {
if (isCapslockOn){
show();
}else{
hide();
}
}
$(document).keydown(checkCapsLock_keydown);
$("#input-password").keyup(tip).focus(function(){
if(isCapslockOn){
show();
}
}).blur(function () {
hide();
});
使用的layer弹出层插件。
3.最终
感谢以下文章:http://zhidao.baidu.com/link?url=RhaNVM2iaO4MaB7EeLav83tkcBkwkTISyHNBXM_L5zafKE3C5NdQfWgVLtPT9HdwAyos4ilzFoJmB0avbLpjra
http://www.dewen.net.cn/q/1762http://www.jb51.net/article/32384.htm
http://layer.layui.com/api.html