2016-10-19 6 views
2

캡 잠금이 입력 요소의 포커스 이벤트를 사용하지만 IE의 입력 비밀번호 유형을 갖는 동작과 같은 키를 누르지 않고 활성화되어 있는지 확인하고 싶습니다. IE의 경우 당신이 입력 비밀번호의 종류에 초점이 때 사용자가 활성화 된 경우 사용자가 내가 JS를 사용하여 수행 할 작업을 그 어떤 키를 눌렀되지 않은 경우에도 을 잠금 장치 경고 툴팁 나타납니다.JS를 사용하여 아무 키도 누르지 않고도 CAPS LOCK STATUS가 활성화되면 어떻게 감지 할 수 있습니까?

$(function() {//check caps lock on 
       var isIE = !isIE && !!window.StyleMedia; 
       if (isIE == true) { 
        document.msCapsLockWarningOff = true; 
       }    
        $('#Password').keypress(function (key) { 
         if (key.charCode >= 65 && key.charCode <= 90) 
          $('#capLockOn').tooltip('show'); 
         else { 
          $('#capLockOn').tooltip('hide'); 
         } 
         //Hide the tooltip when moving away from the password field 
         $('#Password').blur(function (e) { 
          $('#capLockOn').tooltip('hide'); 
         }); 
        }); 

      }); 

내가 일관된 디자인 어떤 조언을주십시오 유지를 위해 브라우저의 기본 경고없이 경고를 추가하고 싶습니다 ...

+0

[JavaScript를 사용하여 대문자 잠금이 설정되었는지 어떻게 알 수 있습니까?] (http://stackoverflow.com/questions/348792/how-do-you-tell-if-caps-lock-is-on) -using-javascript) – aug

+0

http://stackoverflow.com/a/10680954/215042 – RobIII

+0

답장을 보내 주셔서 감사합니다. 그러나 거기에있는 모든 예제는 키 누르기를위한 것입니다. 포커스 이벤트를 사용해야한다는 것을 알고 있지만 필요한 것은 무엇입니까? 알고있는 방법은 caps lock의 상태를 감지하는 것입니다. 일관된 디자인을 유지하기 위해 브라우저의 기본 경고없이 경고를 추가하고 싶습니다. – UserEsp

답변

1

사용할 수 지금 내 코드는 단지 키 누르기 이벤트와 함께 일하고있다 KeyboardEvent.getModifierState('CapsLock');. 수정 자 키 (MDN Docs)의 현재 상태를 반환합니다.

$('#inputBox').addEventListener('focus', function(e) { 
    e.getModifierState('CapsLock'); 
}); 

사용자가 원하는대로 초점을 맞출 때 Caps Lock 수정 자의 현재 상태를 알려줍니다.

+1

[Safari를 잠시 지원할 필요가없는] 좋은 아이디어 인 경우 http://koiuse.com/#search = getModifierState) –

+0

사실, IE 용입니다. 나는 사파리에 대한 기본 동작이라고 생각한다. – Xenith

+0

답변을 주셔서 감사합니다. 나는 잘못된 것을하고 있어요. "Uncaught TypeError : $ (...). addEventListener는 함수가 아닙니다." .addEventListener ('focus', function (e)) 그러나 "e.getModifierState가 함수가 아닙니다."그런 다음 e.originalEvent.getModifierState ('CapsLock')를 시도했지만 아직 아무런 단서 오류가 발생하지 않습니다. – UserEsp