繁体   English   中英

在“onfocus”事件中检查CapsLock ON

[英]Check for CapsLock ON in “onfocus” event

用于检查Capslock是否打开的以下代码在“onkeypress”事件上正常工作。

但我希望它用于“onfocus”活动。 我尝试用“onfocus”替换“onkeypress”用于控件,但它对我不起作用。

有帮助吗? (在javascript或Jquery中)

 <script type="text/javascript" language="Javascript">
    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))
            document.getElementById('divMayus').style.visibility = 'visible';
        else
            document.getElementById('divMayus').style.visibility = 'hidden';
    }
</script>

<input type="text" name="txtuname" />
<input type="password" name="txtPassword" onkeypress="capLock(event)" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div> 

有一个名为capslockstate的jQuery插件,它将跟踪大写锁定键的状态,允许您在需要时使用该信息。

它将监视整个页面的状态,然后您可以在所需元素获得焦点时检索状态。

它也基于观看按键,但不限于较低的ASCII字符,并处理按下Caps Lock键本身的情况。

你的情况会变成:

<script src="{path-to}/jquery-capslockstate.js"></script>
<script>
    $(document).ready(function() {
        $(window).capslockstate();

        $(window).bind("capsOn", function(event) {
            if ($("#txtPassword:focus").length > 0) {
                document.getElementById('divMayus').style.visibility = 'visible';
            }
        });
        $(window).bind("capsOff capsUnknown", function(event) {
            document.getElementById('divMayus').style.visibility = 'hidden';
        });
        $("#txtPassword").bind("focusout", function(event) {
            document.getElementById('divMayus').style.visibility = 'hidden';
        });
        $("#txtPassword").bind("focusin", function(event) {
            if ($(window).capslockstate("state") === true) {
                document.getElementById('divMayus').style.visibility = 'visible';
            }
        });
    });
</script>

<input type="text" name="txtuname" />
<input type="password" name="txtPassword" id="txtPassword" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>

请注意,我只是jQueryified基本位,仍然可以做更多。

它似乎不可能检测到大写锁定我认为这可能会帮助你请访问这个

http://jaspreetchahal.org/jquery-caps-lock-detection-plugin/

不幸的是 - 事件对象的keyCode属性仅在基于键的事件上发送(出于显而易见的原因),这就是为什么它不能用于onfocus,onclick等。

没有任何其他JavaScript方法可以做到这一点 - 虽然如果你使用闪存有一个潜在的解决方案 - 但这似乎有点矫枉过正你的要求......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM