检查umlaute的keydown事件

时间:2012-12-10 10:51:07

标签: javascript javascript-events char keycode

如果按下的键是变音符号(ä,ö,ü),我想通过eventListener进行检查。问题是charCode / keyCode是0,如果我没有弄错,这个值也用于某些控制键。

我尝试将e.which的{​​{1}}解析为我可以使用的内容,但直到现在似乎没有任何效果。如果我可以做keyDown之类的事情,那就太好了。

有任何帮助吗? :) 或者检查'ä'.atCharCode()

是否合理且安全

3 个答案:

答案 0 :(得分: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!');
    }
});

答案 1 :(得分:1)

发现问题。在Chrome中,everthing很好,并且变性无法获得正确的charCode。另一方面,在Firefox中,似乎没有真正的支持umlaute,他们的charCode始终为0.我测试的FF是17.0.1

因此,如果您想解决此问题,则必须不允许e.keyCode / e.which 0的事件。

答案 2 :(得分: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>

从以下链接中查找字符代码 http://www.expandinghead.net/keycode.html