Javascript 为什么我的代码总是大写? $('#a')。键控( 功能(事件){ 警报(String.fromCharCode(event.which)) })
您可以在浏览器中测试此代码 而且它总是提醒大写字符编码。(猜测)Javascript 为什么我的代码总是大写? $('#a')。键控( 功能(事件){ 警报(String.fromCharCode(event.which)) }),javascript,jquery,Javascript,Jquery,您可以在浏览器中测试此代码 而且它总是提醒大写字符编码。(猜测) 它引用的是没有箱子的钥匙。大小写取决于shift键是否也按下。起初,我认为这是一个错误,因为keypress事件返回了预期的小写值。事实证明,在keyup/keydown上,总是返回ASCII大写/非移位版本的键 通过此链接: 访问密钥代码时要小心 在onkeydown或 onkeyup事件,因为无论何时 按下任何键,包括非 字符键,如“Shift”。这 表示如果您尝试按“Shift+a”键 尝试获取“A”的钥匙码,你可以 最终总
它引用的是没有箱子的钥匙。大小写取决于shift键是否也按下。起初,我认为这是一个错误,因为
keypress
事件返回了预期的小写值。事实证明,在keyup/keydown
上,总是返回ASCII大写/非移位版本的键
通过此链接:
访问密钥代码时要小心
在onkeydown或
onkeyup事件,因为无论何时
按下任何键,包括非
字符键,如“Shift”。这
表示如果您尝试按“Shift+a”键
尝试获取“A”的钥匙码,你可以
最终总会得到两个
钥匙代码,一个用于“换档”和
按那个顺序一个代表“A”。你呢
不管钥匙码是什么,都得不到
对于“a”,as keyCode始终返回
大写字母的unicode值
字符的版本
- 按下Shift+a可算作一次按键事件
- 按下Shift+a键时,计为两个
事件,松开键时计为两个keydown
事件keydup
返回同时按下的一个或多个键的合成值keypress
和keydown
返回单个键的值,同时忽略任何键组合李>keydup
现在是令人困惑的部分:由于某种原因,
a
键的未移位值返回为键代码65。但在ASCII表中,65是大写字母A。因此,在这条线上的某个地方,浏览器使用小写字母a(ASCII代码97),将其转换为大写字母a,然后将其keydown/keydup
作为非移位字符传递。奇怪,不是吗?我不确定我是否会称这种行为为“奇怪”,这只是一种惯例。请注意,keyCode
事件不考虑这种情况。keyCode
告诉您按下了哪个键,而不是由它产生的字符。由于几乎所有键盘上的字母都是大写的,所以使用大写的变体似乎是有意义的。很好的回答,否则。:)
<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>