6

使用时.keydown我可以捕获 keydown 事件,然后检查并阻止默认操作(显示字符)。

使用时.keyup我不能?

alert()我知道当代码在条件内但preventDefault()不会阻止该操作时,该事件被捕获为触发。

这是一个完整的演示

4

2 回答 2

15

如果keyup字符已输入且无法撤消,但未输入keydown任何内容且浏览器有意输入该字符,则您可以取消浏览器意图。

每当您键入一个字符时,都会发生以下事件:

keydown -->keypress重复直到按键被释放 -->keyup

  • keydown-> 可以防止 ->按键时触发
  • keypress-> 可以防止 ->按住键时触发
  • keyup-> 无法阻止 ->释放键时触发
于 2013-10-30T17:18:36.273 回答
0

按下键时keydown()触发事件,这意味着可以在释放键之前执行代码。

当按键被按下时,代码可以阻止一个动作,因为它还没有发生,而在keyup()事件中,它已经发生了。

例如,触发时已将字符插入输入字段keyup()

通常,keydown 和 keyup 产生相同的键码(当与给定事件一起使用时)但是 keypress 会为您提供按下的物理键(返回 ASCII 码而不是 keyCode)

于 2013-10-30T17:16:22.623 回答