Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript dispatchEvent按键,返回true,但输入字段仍然为空_Javascript_Keyevent - Fatal编程技术网

javascript dispatchEvent按键,返回true,但输入字段仍然为空

javascript dispatchEvent按键,返回true,但输入字段仍然为空,javascript,keyevent,Javascript,Keyevent,我需要在输入框内触发或说dispatchEvent按键, 我尝试了很多“initKeyboardEvent”、“initKeyEvent”、“createEvent”,甚至我也找到了类似问题的答案,但在firefox和chrome中似乎都不起作用(我认为它们可能被弃用),就像 KeyboardEvent.initKeyEvent()已被弃用 就像我们一样 document.getElemntByID('button').click(); 我想做一些类似的事情: document.getElem

我需要在输入框内触发或说dispatchEvent按键, 我尝试了很多“initKeyboardEvent”、“initKeyEvent”、“createEvent”,甚至我也找到了类似问题的答案,但在firefox和chrome中似乎都不起作用(我认为它们可能被弃用),就像 KeyboardEvent.initKeyEvent()已被弃用

就像我们一样

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);