22

I'm trying to simulate an actual tab key press in JavaScript. I don't want to focus on the next element or anything like that, I just want to make it seem like the tab key has been pressed.

The reason why is because I am building a form JavaScript class where I want to be able to use the enter key just like tab. If someone is using a native BROWSER autocomplete, I need to fire the tab key to capture the selected autocomplete response. If I just move to the next input it won't capture their autocomplete selection and leave the field blank.

Any thoughts?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Kirk Ouimet
  • 27,280
  • 43
  • 127
  • 177
  • >>I don't want to focus on the next element or anything like that Mhmm, but that happened when I press the Tab key. The next focusable element get the focus. – Andreas Köberle Oct 21 '09 at 15:29

1 Answers1

31

I don't think it's possible; an article about DOM events here ...mentions that firing an event doesn't trigger the default result of the user action, for security reasons; the script should not be able to simulate user interaction directly. You will have to simulate the behavior the keypress causes (such as focus on a field), instead of trying to actually simulate a keypress. You probably won't be able to interact with the browser's native autocomplete functionality, unless the browser explicitly provides a means for you to do so.

Edit:

See also: [https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete] (Autocomplete HTML attribute)

Hakan Fıstık
  • 16,800
  • 14
  • 110
  • 131
RMorrisey
  • 7,637
  • 9
  • 53
  • 71