模拟内联 onkeydown 事件
Simulate an inline onkeydown event
我有一个我无法控制的输入元素
例如:
<input tabindex="2" onkeypress="if(NotReady_Key())return;fnKeyPressNum(this,'N',0);"onkeydown="if(NotReady_Key())return;fnKeyDownNum(this,9,0);" id="someElement"/>
在 Internet Explorer 8 和 9 中,我试图找到一种方法来使元素表现得好像在输入时按下 "enter" 按钮一样,
没找到JS模拟压机的方法
但是我在想,是否可以抓取内联方法:
onkeydown="if(NotReady_Key())return;fnKeyDownNum(this,9,0);"
从元素中,通过elementById获取元素,
并像事件实际发生一样执行它?
这是我到目前为止尝试过的(我正在使用 jquery):
//get dom element
var element = $("#someElement")[0];
//simulate the event
//insert element as "this"
(function(){
fnKeyDownNum(this,9,0);
}).call(element);
但它似乎并没有像预期的那样工作,我是不是忘记了什么?
我认为我还需要确保除此之外还模拟了其他系统变量,以完全模拟 "ENTER" 事件。
我能做什么?
选项 2 当然是在输入上模拟 "ENTER" 的真实按键,但到目前为止我在 IE8/9 中找不到这样做的方法,任何方式都是如果可以的话,甚至可以使用 VBS。
请注意,我特别需要 IE8 和 IE9 支持。
如果您只需要用一个元素调用 fnKeyDownNum,试试这个:
fnKeyDownNum(document.getElementById('someElement'),9,0);
但是如果你真的需要模拟一个按键(因为,一个按键可以向一个字段添加输入,如果你在一个表单元素上按下回车它也有提交表单的效果)你将不得不管理那分开。
我有一个我无法控制的输入元素 例如:
<input tabindex="2" onkeypress="if(NotReady_Key())return;fnKeyPressNum(this,'N',0);"onkeydown="if(NotReady_Key())return;fnKeyDownNum(this,9,0);" id="someElement"/>
在 Internet Explorer 8 和 9 中,我试图找到一种方法来使元素表现得好像在输入时按下 "enter" 按钮一样,
没找到JS模拟压机的方法
但是我在想,是否可以抓取内联方法:
onkeydown="if(NotReady_Key())return;fnKeyDownNum(this,9,0);"
从元素中,通过elementById获取元素, 并像事件实际发生一样执行它? 这是我到目前为止尝试过的(我正在使用 jquery):
//get dom element
var element = $("#someElement")[0];
//simulate the event
//insert element as "this"
(function(){
fnKeyDownNum(this,9,0);
}).call(element);
但它似乎并没有像预期的那样工作,我是不是忘记了什么? 我认为我还需要确保除此之外还模拟了其他系统变量,以完全模拟 "ENTER" 事件。
我能做什么?
选项 2 当然是在输入上模拟 "ENTER" 的真实按键,但到目前为止我在 IE8/9 中找不到这样做的方法,任何方式都是如果可以的话,甚至可以使用 VBS。
请注意,我特别需要 IE8 和 IE9 支持。
如果您只需要用一个元素调用 fnKeyDownNum,试试这个:
fnKeyDownNum(document.getElementById('someElement'),9,0);
但是如果你真的需要模拟一个按键(因为,一个按键可以向一个字段添加输入,如果你在一个表单元素上按下回车它也有提交表单的效果)你将不得不管理那分开。