【发布时间】:2017-04-07 07:02:47
【问题描述】:
我正在尝试为我的 JQuery 应用程序捕获所有关键事件。使用keydown 事件时,我可以获得输入和制表事件,但所有字母都是大写的。所以,我尝试切换到keypress,我听说是小写+大写字母。这行得通,只是它不再捕获输入和选项卡事件。有两全其美的吗?如何捕获所有事件,区分大小写,包括 enter、tab、shift、alt 等键。
【问题讨论】:
-
.on('keypress,keydown'.....可能是? -
但是不会调用两个事件吗?如何区分为每个事件生成的代码?例如,如果按下字母键,我需要来自
keypress事件的字符代码,如果它是非字母键,我需要来自keydown事件的代码。 -
不,你不能在按键中捕获 enter 和 tab。
-
由于某种奇怪的原因,keypress 可以毫无问题地捕获 enter 和 tab 键。顺便问一下,您使用的是什么浏览器?我正在使用最新的 Firefox。
-
首先
keypress不是官方指定的事件(见w3c: keypress),因此浏览器之间可能会有所不同,规范建议的事件而不是keypress是beforeinput这个名字更具描述性,解释了为什么你会得到某些事件,为什么不,beforeinput(或keypress)只有在导致输入时才会发生。keydown:按下的物理键,keypress/beforeinput按下的键产生的输入(字符值)。
标签: javascript jquery