在 JS/jQuery 中触发按键/键按下/键解除事件?

2022-08-30 01:13:16

在JS和/或jQuery中模拟用户在文本输入框中输入文本的最佳方法是什么?

我不想真正将文本放在输入框中,我只想触发所有通常由用户在输入框中键入信息触发的事件处理程序。这意味着对焦、键下、按键、调键和模糊。我认为。

那么,如何做到这一点呢?


答案 1

您可以通过直接调用它们来触发任何事件,如下所示:

$(function() {
    $('item').keydown();
    $('item').keypress();
    $('item').keyup();
    $('item').blur();
});

这符合你的要求吗?

您可能还应该触发并可能触发.focus().change()

如果要使用特定键触发键事件,可以按如下方式操作:

$(function() {
    var e = $.Event('keypress');
    e.which = 65; // Character 'A'
    $('item').trigger(e);
});

这里有一些关于按键事件的有趣讨论:jQuery Event Keypress:按下了哪个键?,特别是关于跨浏览器与 .who 属性的兼容性。


答案 2

您可以调度事件,例如

el.dispatchEvent(new Event('focus'));
el.dispatchEvent(new KeyboardEvent('keypress',{'key':'a'}));