<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>
您可以在浏览器中测试此代码,
它总是提醒大写的字符代码。
起初我认为这是一个错误,因为返回了预期的小写值keypress
事件。事实证明,在keyup/keydown
始终返回密钥的 ASCII 大写/非移位版本。
从这个链接:http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml
访问keyCode时要小心
onkeydown 期间的属性或
onkeyup 事件,因为它会在任何时候设置
按下任意键,包括非
字符键,如“Shift”。这
表示如果您尝试按“Shift+a”
尝试获取“A”的密钥代码,您
最终总会得到两个
键码,一个用于“Shift”,
一个代表“A”,按该顺序。你什么
无论 keyCode 是什么都不会得到
为一个”,因为 keyCode 总是返回
大写的 unicode 值
角色的版本
- 按 Shift+a 算作一次
keypress
event.
- 按 Shift+a 算作 2
keydown
按下按键和两个按键时的事件keyup
释放按键时发生的事件。
-
keypress
返回合成的同时按下一个或多个键的值。
-
keydown
and keyup
返回 a 的值单键同时忽略任何组合键。
现在这是令人困惑的部分:由于某种原因,a
key 以密钥代码 65 的形式返回。但 65 在 ASCII 表中是大写 A。因此,浏览器在这条线上的某个地方采用小写 a(ASCII 代码 97),将其转换为大写 A,然后传递它keydown/keyup
作为非移位字符。很奇怪,不是吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)