如何以编程方式强制输入onchange事件? [英] How do I programmatically force an onchange event on an input?

查看:120
本文介绍了如何以编程方式强制输入onchange事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何以编程方式强制输入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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆