JQuery判断Capslock状态

html代码部分:(忽略了那几个样式吧,是我装逼用的...)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
        #tip {
            position: absolute;
            height: 15px;
            padding: 5px;
            text-align: right;
            display: none;
            background: #f9f5c7;
            border-radius: 3px;
            font-size: 8px;
            -moz-box-shadow: 0.3px 0.3px 1px 1px rgba(0, 0, 0, 0.4);
            -webkit-box-shadow: 0.3px 0.3px 1px 1px rgba(0, 0, 0, 0.4);
            box-shadow: 0.3px 0.3px 1px 1px rgba(0, 0, 0, 0.4);
        }
    </style>
</head>
<body>
    <input id="txt" type="text" /><span id="tip">大写锁定已打开!</span>
</body>
</html>

JQuery代码部分:

记得引入JQuery,或者引入网络上的:<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            var txt = $("#txt");
            function show() {
                var ele = $("#tip");
                $(ele).css("left", txt.offset().left + 2);
                var top = txt.offset().top + txt.height() + 5;
                $(ele).css("top", top);
                $(ele).slideDown(200);
            }
            var isCapslockOn;
            function CapsLock_keyPress(e) {
                var e = event || window.event;
                var keyCode = e.keyCode || e.which;//按键的keyCode。
                var isShift = e.shiftKey || (keyCode == 16) || false;//shift键是否按住。
                if (
                ((keyCode >= 65 && keyCode <= 90) && !isShift) // CapsLock打开,且没有按住shift键。
                || ((keyCode >= 97 && keyCode <= 122) && isShift))// CapsLock打开,且按住shift键。
                    isCapslockOn = true;
                else
                    isCapslockOn = false;
            }
            function CapsLock_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() {
                var ele = $("#tip");
                if (isCapslockOn && ele.is(":hidden"))
                    show();
                else if (!isCapslockOn && !ele.is(":hidden"))
                    ele.hide();
            }
            //keyPress可以判断当前CapsLock状态,但不能捕获CapsLock键。
            $(document).keypress(CapsLock_keyPress);
            //keyDown可以捕获CapsLock键,但不能判断CapsLock的状态。
            $(document).keydown(CapsLock_keydown);


            txt.keyup(tip).focus(function () {
                if (isCapslockOn)
                    show("tip");
            }).blur(function () {
                $("#tip").hide();
            });
        })
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值