How can I trigger an onchange event manually? [duplicate] How can I trigger an onchange event manually? [duplicate] javascript javascript

How can I trigger an onchange event manually? [duplicate]


There's a couple of ways you can do this. If the onchange listener is a function set via the element.onchange property and you're not bothered about the event object or bubbling/propagation, the easiest method is to just call that function:

element.onchange();

If you need it to simulate the real event in full, or if you set the event via the html attribute or addEventListener/attachEvent, you need to do a bit of feature detection to correctly fire the event:

if ("createEvent" in document) {    var evt = document.createEvent("HTMLEvents");    evt.initEvent("change", false, true);    element.dispatchEvent(evt);}else    element.fireEvent("onchange");


MDN suggests that there's a much cleaner way of doing this in modern browsers:

// Assuming we're listening for e.g. a 'change' event on `element`// Create a new 'change' eventvar event = new Event('change');// Dispatch it.element.dispatchEvent(event);