<script type="text/javascript" src="jquery-1.3.2.js"></script>
<input id=a type="text" value='sss'/>
<script type="text/javascript">
$('#a').keyup(
function(event){
alert(String.fromCharCode(event.which))
})
</script>
你可以在你的浏览器中测试这段代码,并且它总是警告UpperCase一个charcode。
答案 0 :(得分:9)
起初我认为这是一个错误,因为keypress
事件返回了预期的小写值。事实证明,在keyup/keydown
上,始终返回密钥的ASCII大写/非移位版本。
从此链接:http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml
访问keyCode时要小心 在onkeydown或 onkeyup事件,因为它随时设置 任何键被按下,包括非键 像“Shift”这样的字符键。这个 意味着如果您尝试按“Shift + a”来 尝试获取“A”的keyCode,你 总会得到两个 相反,keyCodes,一个用于“Shift”和 一个按顺序“A”。你是什么 不管是keyCode都不会得到 对于“a”,因为keyCode总是返回 大写的unicode值 角色的版本
keypress
事件。keydown
事件,在释放按键时计为两个keyup
事件。keypress
返回同时按下的一个或多个键的复合值。keydown
和keyup
会返回单键的值,同时忽略任何键组合。 现在这里是令人困惑的部分:由于某种原因,a
键的未移位值将作为键代码65返回。但是65表是ASCII表中的大写A.所以沿着这条线的某个地方,浏览器采用小写字母a(ASCII代码97),将其转换为大写字母A,然后将其作为非移位字符传递给它keydown/keyup
。很奇怪,不是吗?
答案 1 :(得分:1)
(猜测)
它引用了没有案例的 Key 。案例取决于班次键是否也已关闭。