2016-10-19 5 views
2

キャップロックが入力要素のフォーカスイベントを使用してアクティブになっていて、IEの入力パスワードタイプを持つようなキーが押されていない場合、検出したいと考えています。ユーザーがアクティブキャップは、ユーザーが何を私はJSを使用してやりたいことを、任意のキーを押していない場合でも、をロックしている場合、IEの場合 あなたが入力パスワードこの種の焦点である警告ツールチップを表示されます。あなたが使用することができます 今、私のコードだけでKeyPressイベント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

回答ありがとうございましたが、そこにあるすべての例はキーを押すためのものですが、フォーカスイベントを使用する必要がありますが、知っているどのようにキャップの状態を検出するロックです。一貫性のあるデザインを維持するために、ブラウザのネイティブ警告なしで警告を追加したいと考えています。 – UserEsp

答えて

1

KeyboardEvent.getModifierState('CapsLock');。修飾キー(MDN Docs)の現在の状態を返します。

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

これは、ユーザーが目的に合ったときにCaps Lock修飾子の現在の状態を表示します。

+1

[Safariをしばらくサポートする必要はありません](http://caniuse.com/#search = getModifierState) –

+0

これはIE向けのものですが、真です。私はこれがサファリのネイティブな振る舞いだと信じています – Xenith

+0

答えをありがとう私は何か間違っているんですよ "Uncaught TypeError:$(...)。addEventListenerは関数ではありません"私はe.originalEvent.getModifierState( 'CapsLock');を試しましたが、私はe.originalEvent.getModifierStateを試しましたが、私は "e.getModifierStateは関数ではありません" – UserEsp

関連する問題