在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相关问答推荐

PHP中的搜索功能

在另一个方法的内部函数中调用 this.method()

Javascript 通过从数组值中仅选择真值来更改值

Material UI styled() 实用程序 - 如何递归更改突出显示的文本背景 colored颜色

过滤递归数组

当一次按下超过 2 个键时,p5.js keyIsDown() 行为不一致

如何确保使用 Firebase 仅处理一次作业(job)

在数据表中进行过滤时更新总和

像stackoverflow这样的textarea预览有

根据光标位置调整 jQuery 自动完成 UI 的大小

javascript中的第n个子选择器

视频在 chrome 中播放,但没有在 safari 浏览器中播放

如何去除三元运算符的重复代码?

使用 JavaScript/React 过滤 API 响应

运行 setTimeout 并更改时间值

Google Sheet App Script:将 1 个值从一张表匹配到另一张表,然后如果条件满足设置背景

使用 NextJS 确保敏感代码仅在服务器端运行,这些代码可以从哪里运行?

toString和数组join的时间复杂度差异

如何在react 路由dom中将不存在的路由重定向到主页?

调试时如何配置VS Code运行npx vite dev