createEvent
-dispatchEvent
and preventDefault
exampleThis example demonstrates simulating a click on a checkbox using DOM document.createEvent
,
event.initMouseEvent
, and element.dispatchEvent
methods, as well as using the
event.preventDefault
method in an event handler to prevent the default action associated with the event from happening.
Example | Markup |
---|---|
<input type="checkbox" id="checkbox"/><label for="checkbox">Checkbox</label> |
|
<input type="button" onclick="simulateClick();"
value="Simulate click"/> |
|
<input type="button" onclick="addHandler();"
value="Add a click handler that calls preventDefault"/> |
|
<input type="button" onclick="removeHandler();"
value="Remove the click handler that calls preventDefault"/> |
function preventDef(event) { event.preventDefault(); } function addHandler() { document.getElementById("checkbox").addEventListener("click", preventDef, false); } function removeHandler() { document.getElementById("checkbox").removeEventListener("click", preventDef, false); } function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } }