1

eventListener押されたキーがウムラウト(、、)かどうかäö確認したいü。問題は、charCode/keyCodeが常に0であり、私が間違っていない場合、値は一部のコントロールキーにも使用されることです。

e.whichを解析して、keyDown作業できるものにしようとしましたが、今まで何も機能していないようです。のようなことができたらいいのにと思い'ä'.atCharCode()ます。

何か助けはありますか?:)それとも、チェックするのは問題なく安全0ですか?

4

3 に答える 3

2

Firefox は、これらの特定の文字にキーコード 0 を使用します。他のすべてのブラウザでは、186、192、および 222 です。

たとえば、アルファベット キー + ウムラウトが押されているかどうかを確認する場合は、次のコードを使用します。

$('.myInputBox').keydown(function(e) {
    if ($.inArray(e.keyCode, [0, 186, 192, 222]) != -1 || (e.keyCode > 64 && e.keyCode < 91)) {  
        alert('valid key!');
    } else {
        e.preventDefault();
        alert('no valid key!');
    }
});
于 2014-12-18T16:57:35.557 に答える
1

問題が見つかりました。Chrome ではすべて問題なく、ウムラウトは正しい charCode を取得しています。一方、Firefox では、ウムラウトを実際にサポートしていないようで、charCode は常に 0 です。私がテストした FF は 17.0.1 でした。

したがって、この問題を解決したい場合は、e.keyCode/e.whichのイベントを許可しないようにする必要があり0ます。

于 2012-12-11T15:36:48.677 に答える
0
<script type="text/javascript">
        function disablekeys(e) {
            var e = event || evt;
            var charCode = e.which || e.keyCode;
            if (charCode = 8) {
                //your code here
            }
        }
</script>

次のリンクからcharコードを検索します http://www.expandinghead.net/keycode.html

于 2012-12-10T10:59:28.510 に答える