如何以编程方式强制输入onchange事件? [英] How do I programmatically force an onchange event on an input?
问题描述
如何以编程方式强制输入onchange事件?
How do I programmatically force an onchange event on an input?
我尝试过这样的事情:
var code = ele.getAttribute('onchange');
eval(code);
但我的最终目标是触发任何侦听器功能,这似乎不起作用。也没有更新'value'属性。
But my end goal is to fire any listener functions, and that doesn't seem to work. Neither does just updating the 'value' attribute.
推荐答案
创建事件
object并将其传递给元素的 dispatchEvent
方法:
Create an Event
object and pass it to the dispatchEvent
method of the element:
var element = document.getElementById('just_an_example');
var event = new Event('change');
element.dispatchEvent(event);
这将触发事件监听器,无论它们是否通过调用 addEventListener进行了注册
方法或设置元素的 onchange
属性。
This will trigger event listeners regardless of whether they were registered by calling the addEventListener
method or by setting the onchange
property of the element.
如果您希望事件冒泡,请将第二个参数传递给事件
构造函数:
If you want the event to bubble, pass a second argument to the Event
constructor:
var event = new Event('change', { bubbles: true });
有关浏览器兼容性的信息:
Information about browser compability:
- dispatchEvent()
- Event()
这篇关于如何以编程方式强制输入onchange事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!