Dùng Event constructor + dispatchEvent() trên element.
Ví dụ
<input id="test" type="text" />
// Listener
document.querySelector('#test').addEventListener('change', () => console.log("Changed!"));
// Trigger manually
const event = new Event('change');
const element = document.querySelector('#test');
element.dispatchEvent(event); // logs "Changed!"
Các event type khác
new Event('click'),new Event('input'),new Event('submit')...new CustomEvent('myEvent', { detail: { foo: 'bar' } })— custom event với data.
Lưu ý
dispatchEvent**sync** — listener chạy ngay lập tức trước khi dòng code tiếp theo.- Không trigger default behavior (ví dụ:
dispatchEvent(new Event('submit'))không submit form — dùngform.requestSubmit()). - React/Vue: dùng ref +
dispatchEventhoặc test utils (fireEvent,userEvent).