如何让它在Mozilla Firefox中运行? 它在IE和Chrome中运行得很好
<script type='text/javascript'>//<![CDATA[
function isNumberLetter(evtNL) {
if ((evtNL.keyCode >= 48 && evtNL.keyCode <= 57) ||
(evtNL.keyCode >= 65 && evtNL.keyCode <= 90) ||
(evtNL.keyCode >= 97 && evtNL.keyCode <= 122))
return true;
return false;
}//]]>
</script>
答案 0 :(得分:1)
嗯,似乎第三条评论(@dandavis)是正确的。我在Firefox 30.0(Aurora)中试过这个:
document.body.onkeypress = function (e) {
console.log(e.keyCode);
console.log(e.key);
}
给出了这样的结果:
0
"a"
0
"b"
0
"c"
0
"d"
如果我将onkeypress
更改为onkeydown
或onkeyup
,则可以正常使用:
65
"a"
66
"b"
67
"c"
68
"d"
编辑:
正如@adeneo所建议的那样e.which
似乎也适用于按键。
答案 1 :(得分:1)
如果您捕获了按键事件,则可以获取charCode:
$(document.body).on('keypress', function(event) {
var isAlphaNum = String.fromCharCode(event.charCode).match(/[a-zA-Z0-9]/);
if(isAlphaNum) {
console.log('Letter or number');
} else {
console.log('Other key');
}
});
答案 2 :(得分:0)
在看了Mozilla's developer network entry on keyboard events后,你似乎应该使用event.key
- 假设你正在传递一个事件。 keyCode似乎已被弃用。
然而,event.key尚未实现。 @dandavis指出,无论如何,使用keyCode
应该是跨浏览器。