我需要一个输入框里面触发或者说dispatchEvent按键响应, 我已经尝试了很多与“initKeyboardEvent”,“initKeyEvent”,“createEvent“,即使我发现类似的问题的答案,但似乎没有工作,既不在Firefox中,也不在铬(我认为他们可能会被弃用),作为 KeyboardEvent.initKeyEvent(),已被弃用。JavaScript的dispatchEvent按键时,返回true,但输入字段仍然是空的
就像我们
document.getElemntByID('button').click();
我想要做的事,如:
document.getElemntById('email').keyPress(charCode('a'));
但不幸的是我不能够让按键的工作以任何方式。
我知道这是可能在jQuery中,但我想这样做的纯JavaScript,jQuery的所有后端中使用JavaScript后,所以必须有一个办法,如果我没看错的。
====更新=========
不知
window.addEventListener('keydown', keyDown(), true);
function keyDown(){
alert('keydown');
}
var fireOnThis = document.getElementById('pwph');
if(window.KeyEvent) {
var evObj = document.createEvent('KeyEvents');
evObj.initKeyEvent('keydown', true, true, window, false, false, false, false, 72, 0);
} else {
var evObj = document.createEvent('UIEvents');
evObj.initUIEvent('keydown', true, true, window, 1);
evObj.keyCode = 72;
}
fireOnThis.dispatchEvent(evObj);
此代码返回我真的,甚至eventListner正赶上这个活动,那么为什么我不能看到输入框内的任何文字?更新============================
这似乎适用于每个人,但为什么它离开我的文本字段为空,即使返回true后?
// Create the event
var evt = document.createEvent('KeyboardEvent');
// Init the options
evt.initKeyEvent(
"keypress", // the kind of event
true, // boolean "can it bubble?"
true, // boolean "can it be cancelled?"
null, // specifies the view context (usually window or null)
false, // boolean "Ctrl key?"
false, // boolean "Alt key?"
false, // Boolean "Shift key?"
false, // Boolean "Meta key?"
9, // the keyCode
0); // the charCode
// Dispatch the event on the element
el.dispatchEvent(evt);
'则charCode(“A”)'将调用函数...你需要传递函数表达式... – Rayon
如何添加'onkeydown'事件的DOM元素?像:'' – Jerry
[调用按键事件,而无需实际按下键]的可能的复制(http://stackoverflow.com/questions/10514123/invoking-keypress-event -without-实际上压键) – Boratzan