2012-08-09 3 views
3

"onkeypress"이벤트에서 Capslock이 켜져 있는지 여부를 확인하는 다음 코드는 다음과 같습니다."onfocus"이벤트에서 CapsLock ON 확인

하지만 "onfocus"이벤트를 원합니다. "onkeypress"를 "onfocus"로 바꾸려고했으나 나에게 도움이되지 못했습니다.

어떤 도움이 필요합니까?

<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> 
+0

위의 링크는 capslock 감지 코드에 대한 질문입니다 ... 다른 이벤트에 대한 질문입니다. 코드가 있지만 ... 다른 이벤트에서 필요합니다. – Santosh

답변

5

필요할 때로하고 해당 정보를 사용할 수 있도록 키를 잠급니다.

전체 페이지의 상태를 모니터링 한 다음 원하는 요소가 포커스를 얻었을 때 상태를 검색 할 수 있습니다.

키 누름을보고 있지만 ASCII 문자가 더 낮지 않은 것을 기본으로하며 Caps Lock 키와 같은 상황을 처리합니다. 난 단지 필수 비트를 jQueryified 한

<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> 

주, 더 여전히 수행 할 수 있습니다 :

귀하의 상황은 무언가 같이 될 것입니다.

+0

나를 위해 jsFiddle에서 작동하지 않습니다. 파이어 폭스 사용하기. – mondjunge

+1

@mondjunge 내가 Github에서 핫 링크되어 있기 때문에 일어나고있다. 그들은 사람들이 그렇게하기를 원하지 않으며 그것을 막기 위해 몇 가지 헤더를 추가했습니다. 그러나 Firefox는 현재 헤더를 존중하는 유일한 브라우저입니다. 제대로 호스팅되면 스크립트는 모든 브라우저에서 작동합니다. – nosilleg

+0

@mondjunge js의 차단되지 않은 버전을 사용하여 마침내 데모를 수정하려고합니다. 오, 오래 전, 이것을보고 해 주셔서 감사합니다. – nosilleg

0

불행히도 (중 JQuery와 자바 스크립트 나) - 이벤트 객체의 키 코드 특성 만이, 온 클릭 등 onfocus 및 작동하지 않을 이유입니다, (분명한 이유) 키 기반 이벤트에 보내진다 .

이 그것을하는 다른 자바 스크립트 방법이 없습니다 - 거기에 당신이 플래시를 사용하는 경우 잠재적 인 솔루션이지만 -하지만 당신의 요구 사항에 다소 지나친 것 같다 ...

+0

http://forums.adobe.com/message/3349870 - 플래시로 작업하는 방법에 대해 설명합니다. 대문자 잠금이 설정된 경우 메시지를 표시하는 작은 swf를 사용하는 것이 실제로 유일한 방법입니다. –

관련 문제