javascript dispatchEvent按键,返回true,但输入字段仍然为空
我需要在输入框内触发或说dispatchEvent按键, 我尝试了很多“initKeyboardEvent”、“initKeyEvent”、“createEvent”,甚至我也找到了类似问题的答案,但在firefox和chrome中似乎都不起作用(我认为它们可能被弃用),就像 KeyboardEvent.initKeyEvent()已被弃用 就像我们一样javascript dispatchEvent按键,返回true,但输入字段仍然为空,javascript,keyevent,Javascript,Keyevent,我需要在输入框内触发或说dispatchEvent按键, 我尝试了很多“initKeyboardEvent”、“initKeyEvent”、“createEvent”,甚至我也找到了类似问题的答案,但在firefox和chrome中似乎都不起作用(我认为它们可能被弃用),就像 KeyboardEvent.initKeyEvent()已被弃用 就像我们一样 document.getElemntByID('button').click(); 我想做一些类似的事情: document.getElem
document.getElemntByID('button').click();
我想做一些类似的事情:
document.getElemntById('email').keyPress(charCode('a'));
但不幸的是,我无法使按键以任何方式工作
我知道这在jQuery中是可能的,但我想在纯javascript中实现,毕竟jQuery在后端使用javascript,所以如果我没有错的话,一定有办法
====更新======我想知道 这段代码返回true,甚至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 );
我想是的,就像你们想在输入框中添加事件监听器一样
var element = document.getElementById("email");
document.getElementById("email").addEventListener("keypress", function() {
console.log("keypresh")
})
var evt = document.createEvent("KeyboardEvent");
evt.initEvent("keypress", false, true);
// adding this created a magic and passes it as if keypressed
element.dispatchEvent(evt);
我试图在输入元素中分派一个keyPress事件来传递数据绑定条件(KnockOut js)事件,但不幸的是keyPress对我不起作用,而是使用change事件来代替它 所以我这样做了:
element = document.getElementById('idTxtBx_SAOTCS_ProofConfirmation');
element.value = '8885'; // this alone was not working as keypress.
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true); // adding this created a magic and passes it as if keypressed
element.dispatchEvent(evt);
因此,.value和更改事件一起生成,伪输入文本或按键事件成功。
charCode('a')
将调用函数。。。您需要传递函数表达式…如何将onkeydown
事件添加到DOM元素?例如:
输入元素的可能重复项不是我的手:)@Boratzan yea可能是,但该代码对我不起作用,我想知道为什么..返回true但输入字段没有任何变化,它仍然是空的AddEventListner是在触发事件时侦听的东西,我不想侦听,我想触发或调度事件(keypress),在输入字段上。我已经浏览了这个链接,鼠标事件可以工作,但键盘事件不起作用:var keyEvent=newkeyboardevent(“keydown”),{key:“a”,char:“a”,shiftKey:true});document.getElementById('email')。dispatchEvent(keyEvent);返回true,但不在给定ID的输入框中输入任何字符。
element = document.getElementById('idTxtBx_SAOTCS_ProofConfirmation');
element.value = '8885'; // this alone was not working as keypress.
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true); // adding this created a magic and passes it as if keypressed
element.dispatchEvent(evt);