1

我想检查eventListener按下的键是否是变音符号(ä, ö, ü)。问题是charCode/keyCode始终为 0,如果我没记错的话,该值也用于某些控制键。

我试图将 的 解析为我可以使用e.whichkeyDown东西,但直到现在似乎没有任何效果。如果我能做类似的事情就好了'ä'.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.whichof 的事件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>

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

于 2012-12-10T10:59:28.510 回答