如何用原生JavaScript修改输入框值后自动触发回车键事件?
如何通过原生JS自动触发回车事件实现CMS树跳转
直接修改输入框value后,页面可能没感知到内容变化,而且旧的keyCode属性已被废弃,这是你之前代码无效的主要原因。试试下面的方案:
- 先设置输入框值,再触发
input事件,让页面识别内容更新 - 使用标准的
KeyboardEvent属性(key/code)触发回车事件
完整代码示例
// 获取目标输入框元素 const inputEl = document.getElementById("repository-path"); // 设置目标路径 inputEl.value = "/content/*/americas/us/en/"; // 触发input事件,通知页面内容已变更 const inputEvt = new Event("input", { bubbles: true, cancelable: true }); inputEl.dispatchEvent(inputEvt); // 触发回车事件(兼容新旧监听逻辑) const enterEvt = new KeyboardEvent("keydown", { bubbles: true, cancelable: true, key: "Enter", code: "Enter", which: 13 }); inputEl.dispatchEvent(enterEvt);
备选方案(针对不同事件监听逻辑)
如果keydown事件无效,可尝试触发keyup事件,部分CMS可能监听这个事件:
const enterKeyupEvt = new KeyboardEvent("keyup", { bubbles: true, cancelable: true, key: "Enter", code: "Enter" }); inputEl.dispatchEvent(enterKeyupEvt);
如果输入框嵌套在表单内,也可以直接触发表单提交:
inputEl.form?.dispatchEvent(new Event("submit", { bubbles: true, cancelable: true }));
内容的提问来源于stack exchange,提问作者t-bay
相关产品推荐
相关产品推荐

