我想检查eventListener
按下的键是否是变音符号(ä, ö, ü)。问题是charCode
/keyCode
始终为 0,如果我没记错的话,该值也用于某些控制键。
我试图将 的 解析为我可以使用e.which
的keyDown
东西,但直到现在似乎没有任何效果。如果我能做类似的事情就好了'ä'.atCharCode()
。
有什么帮助吗?:) 或者检查0
?
我想检查eventListener
按下的键是否是变音符号(ä, ö, ü)。问题是charCode
/keyCode
始终为 0,如果我没记错的话,该值也用于某些控制键。
我试图将 的 解析为我可以使用e.which
的keyDown
东西,但直到现在似乎没有任何效果。如果我能做类似的事情就好了'ä'.atCharCode()
。
有什么帮助吗?:) 或者检查0
?
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!');
}
});
发现了问题。在 Chrome 中,一切都很好,并且变音符号得到了正确的 charCode。另一方面,在 Firefox 中,似乎没有真正支持变音符号,并且它们的 charCode 始终为 0。我测试的 FF 是 17.0.1
所以如果你想解决这个问题,你必须不允许带有e.keyCode
/ e.which
of 的事件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