我需要一個輸入框裏面觸發或者說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