我正在开发自动填充扩展程序。我想用一个值(例如value =“ 12345”)填充输入字段,然后触发等效于jQuery $(element).change()的方法,但是使用纯JavaScript / DOM。

我试过派遣change方法,

document.querySelector("input[name=inputIWantToChange]").dispatchEvent(new Event("change"));


但是行为不同于

$("[name=inputIWantToChange]").change()

最佳答案

Looking at jQuery's source code,当您调用change()时,jQuery似乎会通过调用绑定到该事件的处理程序(它创建的假事件)来工作-这意味着您将必须找到一种方法能够调用一个函数,并让事件调用相同的函数。考虑以下:

var elem = document.querySelector("input[name=inputIWantToChange]");

elem.addEventListener("change", function (evt) {
    onElemChange() // Pass data from the event `evt` here, as needed
});

function onElemChange() {
    // Your handler method here
}


当您希望像使用jQuery一样调用“更改事件”时,然后可以使用事件中获得的信息调用onElemChange,前提是您想使用其中的任何信息。事件。

10-05 20:27
查看更多