如何以编程方式强制输入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()
- 活动()
- dispatchEvent()
- Event()
更多推荐
如何以编程方式强制输入onchange事件?
发布评论