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,438
  • 68
  • 55
  • 126
Kirk Ouimet
  • 25,594
  • 43
  • 117
  • 167
  • >>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

30

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
  • 14,367
  • 10
  • 94
  • 117
RMorrisey
  • 7,510
  • 9
  • 50
  • 69