我正在开发自动填充扩展程序。我想用一个值(例如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
,前提是您想使用其中的任何信息。事件。