如何使用纯JavaScript在textarea值变更时自动触发Enter按键事件
修复方案
核心问题点
- 原代码获取元素逻辑错误:
document.getElementById("vJSONValue").value取到的是textarea的字符串值,不是DOM元素本身,后续赋值、触发事件的操作全部无法执行 - 依赖jQuery的事件API,不符合纯JS实现要求
- 仅触发keypress事件无法让JSONeditor感知内容更新,需要补充触发内容变更相关事件
可用纯JS实现代码
function simulateEnterPress(element) { // 先触发内容变更事件,通知编辑器文本已更新 element.dispatchEvent(new Event('input', { bubbles: true })); element.dispatchEvent(new Event('change', { bubbles: true })); // 构造标准Enter按键事件 const enterEvent = new KeyboardEvent('keydown', { key: 'Enter', code: 'Enter', which: 13, keyCode: 13, bubbles: true }); element.dispatchEvent(enterEvent); } function doAction() { // 正确获取textarea DOM元素 const inputElement = document.getElementById("vJSONValue"); // 赋值目标JSON内容 inputElement.value = '[{"label":"oook"}]'; // 触发更新+Enter按键逻辑 simulateEnterPress(inputElement); } // 执行操作 doAction();
Robot Framework调用说明
直接在测试用例中调用Execute JavaScript关键字,传入上述完整代码即可运行,无需额外依赖。
内容的提问来源于stack exchange,提问作者Manasjyoti Bhuyan
相关产品推荐
相关产品推荐

