如何在没有 jQuery 的情况下以编程方式触发“输入”事件?

新手上路,请多包涵

我在 input 使用

var element = document.getElementById('some-input');
element.addEventListener('input', function() {
    console.log('The value is now ' + element.value);
});

正如预期的那样,当我在文本字段中键入时会触发处理程序,但我还需要从我的代码中调用此处理程序。我如何模拟 input 事件以便调用我的事件侦听器?

原文由 bdesham 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 258
2 个回答

使用纯 JavaScript 触发事件的正确方法是创建一个 Event 对象,然后分发它

var event = new Event('input', {
    bubbles: true,
    cancelable: true,
});

element.dispatchEvent(event);

或者,作为一个简单的单行代码:

 element.dispatchEvent(new Event('input', {bubbles:true}));

小提琴

IE不支持,还是老办法

var event = document.createEvent('Event');
event.initEvent('input', true, true);

elem.dispatchEvent(event);

原文由 adeneo 发布,翻译遵循 CC BY-SA 4.0 许可协议

element.dispatchEvent(new Event('input'));

原文由 RedDragonWebDesign 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题