用jQuery自动按键盘?

是否可以使用jQuery自动模拟键盘上的按键,f.ex。 在html输入字段中?

作为解释:如果我在输入字段内按a ,则会出现“a”。 我想这样做不是来自键盘内部,而是通过按下按钮。 我知道我可以在输入上使用val("a") ,但这不是我想要实现的。

我认为trigger()帮助,因为它只调用了按键事件的事件处理程序。 我不想打电话给处理程序,而是主动按下键盘而不进行操作!

我认为没有用于直接与键盘交互的JavaScript API。 我建议将字段值的更改与通常对应于键盘按下的事件处理程序触发组合,如您所述,以便正常触发字段上的行为。

触发器确实有帮助,因为它触发了一个事件……这是你唯一对浏览器感兴趣的东西……之前的一切都是操作系统的问题(你无法触及,因为你在浏览器中构建…除非你构建一些activeX控件)。 所以,这应该工作:

 var e = $.Event("keypress"); e.which = ; $("").trigger(e); 

正如您在此处所见,当浏览器注册键盘输入时,会发送按键事件。 keypress和keydown之间的区别在于:“如果用户按下并按住某个键,则会触发一次keydown事件,但会为每个插入的字符触发单独的keypress事件……”。 您可以根据用例决定使用哪一个。

不。 在Javascript中无法模拟实际的键盘按键。 键盘按键涉及更多的进程,这是在Javascript /浏览器之外。

或者你可以模拟按键事件,但我猜你不想叫按键。

你可以尝试类似的东西。

 $("inputSelector").trigger($.Event("keypress", { keyCode: 97 })); 

传递你想要的任何键的键码。

在我看来,好像目标不一定是模仿本机浏览器按键事件,而是操纵输入字段内的文本。

如果我是对的,你可以获取.prop('selectionStart').prop('selectionEnd')值,并你想要“按键”的字符覆盖那些索引中的任何字符。 您可以通过触发适当的键盘事件来伴随此操作。

我之前从未做过文字选择。 我知道IE的处理方式与普通浏览器的处理方式不同,所以如果选择走这条路,你需要研究这个主题并找到一个跨浏览器的解决方案。 为了使事情变得完美,您需要在修改输入值之后更改选择属性,就像它是本机粘贴一样。

模仿JavaScript中的按键(以及jQuery)归结为在需要它的地方插入“打字”字符并触发任何相关处理程序(即带trigger )。