使用e.keyCode || e.which;如何确定小写和大写之间的区别?

时间:2010-12-09 17:36:14

标签: javascript jquery events javascript-events

我正在使用e.keyCode || e.which;来确定按下了哪个键,但我为aA获得了65,为什么会发生这种情况?如何检测两者之间的差异?

5 个答案:

答案 0 :(得分:10)

在jquery中使用e.which。它们会为所有浏览器规范化此值。

此外,您可以查看e.shiftKey

答案 1 :(得分:2)

无论是'a'还是'A',65是键盘按下键的结果,该键始终为65.

事件将仅指定按下哪个键而不是其值;这是两件事。您可以测试event.shiftKey以及您正在寻找的密钥,但我不相信它会处理启用Caps Lock的情况。

答案 2 :(得分:0)

此脚本适用于小写和大写字母按

<form>
    Char: <input type="text" id="char" size="15" /> Keycode: <input type="text" id="unicode" size="15" />
    </form>

    <script type="text/javascript">

    var charfield=document.getElementById("char")
    charfield.onkeypress=function(e){
    var e=window.event || e
    var keyunicode=e.charCode || e.keyCode
    document.getElementById("unicode").value=keyunicode
    }

    </script>

答案 3 :(得分:0)

这在vanilla JavaScript中非常具有跨浏览器功能,这就是为什么你应该使用Josiah Ruddell的解决方案。请参阅this article,了解更多信息。

答案 4 :(得分:0)

keyCode不会指示输入了哪个字符 要真正找到用户最后输入的字符,您需要检查输入的值并找到最后一个字符。