vasilevich
vasilevich

Reputation: 763

Simulate an inline onkeydown event

I have an input element which I do not control for example:

<input tabindex="2" onkeypress="if(NotReady_Key())return;fnKeyPressNum(this,'N',0);"onkeydown="if(NotReady_Key())return;fnKeyDownNum(this,9,0);" id="someElement"/>

In internet explorer 8 and 9, I am trying to find a way to make the element perform as if the "enter" button has been pressed upon the input,

I failed to find a JS way to simulate the press

but I was thinking, is it possible to grab the inline method:

onkeydown="if(NotReady_Key())return;fnKeyDownNum(this,9,0);"

from the element, obtain the element by elementById, and execute it as if the event actually happened? here is what I tried so far(I am using jquery):

 //get dom element
var element = $("#someElement")[0];
//simulate the event
//insert element as "this"
(function(){
fnKeyDownNum(this,9,0);
}).call(element);

but it doesn't seem to work as excpected, did I forget something? I think that I also need to make sure other system variables are simulated other than this, to fully simulate the "ENTER" event.

what can i do?

option 2 is of course to simulate a real key press of "ENTER" right on the input, but i failed to find a way to do so in IE8/9 so far, any way would be accepted even using VBS if thats an option.

please note, I specifically need IE8 and IE9 support.

Upvotes: 0

Views: 432

Answers (1)

James
James

Reputation: 22246

If you just need to call fnKeyDownNum with an element, give this a try:

fnKeyDownNum(document.getElementById('someElement'),9,0);

But if you need to really simulate a keypress (because, a keypress can add input to a field, and if you press enter on a form element it also has the effect of submitting the form) you will have to manage that separately.

Upvotes: 1

Related Questions