javascript - 如何在 javascript 或 JQuery 中模拟 "organic"按键?

标签 javascript jquery events keypress

这几天我一直在尝试这样做。我已经阅读了大量其他类似的问题,但还没有任何帮助。我想要做的是模拟确切的事件,例如用户可以进行的有机按键到文本输入字段。因此,它将输入的“值”设置为新值,就像真正的按键一样工作。 它至少需要在一种浏览器上工作,无论是 Chrome、Mozzila 还是 IE,都完全没有关系。 我需要在输入中一个字母一个字母地输入,但如果它适用于 1 个字母,它肯定会适用于几个字母。

请注意:不能设置input的值。只有人工按键事件可以帮助我。

最佳答案

您可以使用应用程序与浏览器交互或控制浏览器。使用类似 http://www.seleniumhq.org/ 的库可以提供帮助。

这是从 Definitive way to trigger keypress events with jQuery 触发按键事件的代码

var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
$("input").trigger(e);

您确定设置该值对您不起作用吗?如果将值设置为它加上新字符会怎样?此处包含一个可运行的示例。

function typeLetter( letter ) {
    $( '#input' ).val( $( '#input' ).val() + letter );
}

typeLetter( 'a' );
setTimeout( function() { typeLetter( 'b' ); }, 500 );
setTimeout( function() { typeLetter( 'c' ); }, 1000 );
setTimeout( function() { typeLetter( 'd' ); }, 1500 );
setTimeout( function() { typeLetter( 'e' ); }, 2000 );
setTimeout( function() { typeLetter( 'f' ); }, 2500 );
setTimeout( function() { typeLetter( 'g' ); }, 3000 );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input" >

关于javascript - 如何在 javascript 或 JQuery 中模拟 "organic"按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052709/

相关文章:

javascript - For Loop/Each Loop变量存储和比较(jQuery或Javascript

c# - 如何检查是否脏,但保存时不检查?

events - 如何在 Laravel 4 中监听命名空间类的事件

javascript - 如何强制 Web 浏览器单击页面上的链接?

javascript - ExtJS DateField 格式困惑

javascript - 如何在一页上覆盖 autoscroll=true ?

javascript - 反转选择列表顺序

php - 如何在每个循环中增加 Jquery 变量

javascript - JS - 无法在自定义事件的处理程序中将其指向调用者

c - (Linux) 从 PID 为 :VID 的附加 USB 设备获取/dev/input/eventX