如何以编程方式对输入强制执行更改事件?

2022-08-30 02:09:37

如何以编程方式对输入强制执行更改事件?

我尝试过这样的东西:

var code = ele.getAttribute('onchange');
eval(code);

但我的最终目标是启动任何侦听器功能,这似乎不起作用。也不仅仅是更新“值”属性。


答案 1

创建一个对象并将其传递给元素的方法:EventdispatchEvent

var element = document.getElementById('just_an_example');
var event = new Event('change');
element.dispatchEvent(event);

这将触发事件侦听器,而不管它们是通过调用方法还是通过设置元素的属性注册的。addEventListeneronchange


默认情况下,像这样创建和调度的事件不会像通常的事件那样在 DOM 树中传播(冒泡)。

如果希望事件冒泡,则需要将第二个参数传递给构造函数:Event

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

有关浏览器兼容性的信息:


答案 2

在jQuery中,我主要使用:

$("#element").trigger("change");