gpt4 book ai didi

javascript - 为什么我第二次按时返回错误的键码值而不是键码?

转载 作者:行者123 更新时间:2023-11-28 11:49:32 25 4
gpt4 key购买 nike

为什么按第二个键时返回错误的按键代码值而没有获取按键代码?用我的代码

  1. 当我在文本框中按逗号 (,) 时,它会提醒 44 为什么不提醒 188
  2. 当我按第二个键时,为什么会提示 undefined 值?

<input onkeypress="return test_fn(value)" type="text">

<script>
function test_fn(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
alert(charCode);
}
</script>

最佳答案

when I press comma (,) in text box it's will alert 44 Why not alert 188?

因为 , 是字符代码 44。如果您想要 key 代码,则需要使用 keydownkeyup ,而不是按键。但请注意,某些键代码因操作系统而异,甚至区域键盘布局也因区域键盘布局而异。

When I press second key why alert undefined value ?

因为您将输入的传递到函数中,然后使用函数的参数,就好像它是Event对象一样。 第一次,由于 value 为空,因此为假,evt = evt || window.event 获取全局 event 对象(在 Firefox 上不起作用),因此您可以使用事件对象。但是第二次时间,","不是假的,所以evt = evt || window.event 继续使用 "," 并且 whichkeyCode 都未定义。您的 onkeypress 应为 onkeypress="test_fn(event)"

<input onkeypress="return test_fn(event)" type="text">

<script>
function test_fn(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
alert(charCode);
}
</script>

...或者更好的是,根本不使用 onXYZ 属性样式处理程序,使用现代事件处理(addEventListener,也许 attachEvent 如果您必须支持过时的浏览器)。

关于javascript - 为什么我第二次按时返回错误的键码值而不是键码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com