0

Javascript で capslock を検出しようとしていますが、以下のコードは常に false を返します。Firefox と IE の Web コンソールで、kc と sk が未定義であると表示されます。Event "e"which 要素が含まれているようですが、e.which定義されていません。

私は何か間違ったことをしていますか?devexpress を使用しています (これは問題になる可能性がありますか?)

Javascript

 <script>
    function isCapslock(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))
          return true;
      else
          return false; 
      }

関数 showCapsWarning(e) {

        if (isCapslock(e)) {
            document.getElementById("capsWarningDiv").style.visibility = 'visible';
        }
        else {
            document.getElementById("capsWarningDiv").style.visibility = 'hidden';
        }

    }
</script>

aspx ファイル

<dx:ASPxTextBox ID="tbPassword" runat="server" ClientInstanceName="tbPassword" Password="True"                                              ToolTip="Please enter your password."
        Width="300px"  
        ClientSideEvents-KeyPress="function(s,e) {showCapsWarning(e); }"
                                                    >

これは、capslock javascript コードを取得した場所です: http://www.codeproject.com/Articles/17180/Detect-Caps-Lock-with-Javascript

4

2 に答える 2

0

e.これは、Web 開発者コンソール内で定義されていませんでした。イベント オブジェクトが which 要素に到達するために次のパスを使用していることに気付きました: event.htmlEvent.which。使用e.htmlEventすると、正しく動作するようになりました。

于 2013-11-06T20:11:00.357 に答える