为什么我的代码中总是大写?

2024-05-01

<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 算作 2keydown按下按键和两个按键时的事件keyup释放按键时发生的事件。
  • keypress返回合成的同时按下一个或多个键的值。
  • keydown and keyup返回 a 的值单键同时忽略任何组合键。

现在这是令人困惑的部分:由于某种原因,akey 以密钥代码 65 的形式返回。但 65 在 ASCII 表中是大写 A。因此,浏览器在这条线上的某个地方采用小写 a(ASCII 代码 97),将其转换为大写 A,然后传递它keydown/keyup作为非移位字符。很奇怪,不是吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的代码中总是大写? 的相关文章

随机推荐