Basically I'm trying to dispatch a custom made mouse click event to a text input element using the following code (see this jsFiddle):
function simulateClick(id) { var clickEvent = document.createEvent("MouseEvents"); clickEvent.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null); var element = document.getElementById(id); element.dispatchEvent(clickEvent); }
When I run that code on a type="checkbox"
element it works perfectly fine but it doesn't work at all when called on a type="text"
element.
Now here's the definition of initMouseEvent()
on MDN:
event.initMouseEvent(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
So in the above example screenX, screenY, clientX
and clientY
would all be 0
(still, the above code works perfectly fine with checkboxes regardless of their position). I tried capturing a real event and passing the screen and client coordinates to the cusom made event, to no avail.
I though maybe text input elements ignore custom mouse events due to security reasons, but then element.focus()
should't work either, which it does.
Any ideas or insights would be greatly appreciated!