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

我想在输入框中输入文本,我只想触发所有通常由用户在输入框中输入信息触发的事件handlers.这意味着聚焦、向下键、按键、向上键和模糊.我想.

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

推荐答案

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

$(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: Which key was pressed?,特别是关于跨浏览器与.Which属性的兼容性.

Javascript相关问答推荐

如何在JavaScript中在文本内容中添加新行

将状态向下传递给映射的子元素

微软Edge编辑和重新发送未显示""

InDesign—创建一个独立的窗口,在文档中进行更正时保持打开状态

引用在HTMLAttributes<;HTMLDivElement>;中不可用

使用LocaleCompare()进行排序时,首先使用大写字母

在react JS中映射数组对象的嵌套数据

在HTML语言中调用外部JavaScript文件中的函数

检索相加到点的子项

使用getBorbingClientRect()更改绝对元素位置

类构造函数忽略Reaction Native中的可选字段,但在浏览器中按预期工作

Reaction组件在本应被设置隐藏时仍显示

如何防止ionic 输入中的特殊字符.?

如何组合Multer上传?

未捕获的不变违规:即使在使用DndProvider之后也应使用拖放上下文

调用特定数组索引时,为什么类型脚本不判断未定义

如果我将高度设置为其内容的100%,则在Java脚本中拖动以调整面板大小时会冻结

在ReactJS上挂载组件时获得多个身份验证请求

为什么我的Reaction组件不能使用createBrowserRouter呈现?

在D3.js中创建具有旋转手柄的可拖动、可调整大小的框?