Javascript 设置element.value后引发事件

Javascript 设置element.value后引发事件,javascript,Javascript,我试图用javascript填充一个表单,并通过触发各种事件来模拟我键入的表单 以下是我迄今为止所做的工作: domElement.value = "123123"; fireKeyEvent(domElement); function fireKeyEvent(ele) { fireSpecificKeyEvent(ele,"keyup"); fireSpecificKeyEvent(ele,"keydown"); fireSpecificKeyEvent(ele,

我试图用javascript填充一个表单,并通过触发各种事件来模拟我键入的表单

以下是我迄今为止所做的工作:

domElement.value = "123123";
fireKeyEvent(domElement);


function fireKeyEvent(ele) {
    fireSpecificKeyEvent(ele,"keyup");
    fireSpecificKeyEvent(ele,"keydown");
    fireSpecificKeyEvent(ele,"keypress");
}

function fireSpecificKeyEvent(ele, eventName) {
    try {
          var evObj = document.createEvent('UIEvents');
          evObj.initUIEvent( eventName, true, true, window, 1 );
          console.log("eleid:"+ele.getAttribute("id"));
          console.log("eleValue:"+ele.getAttribute("value"));
          ele.dispatchEvent(evObj);
          //evObj.keyCode = 93;
          ele.dispatchEvent(evObj);
        }catch(e) {
            console.log(e);
        }
}
它在大多数情况下工作正常,但有时在某些输入文本框上失败。
keyup、keydown、keydown
足以模拟各种事件

createEvent('UIEvents')
这是正确的实现,还是应该使用keyEvent或KeyBoardEvent

顺便说一句,我正在使用chrome。在我已经使用
元素设置了值之后,有人能给我举一个keyEvent或KeyBoardEvent的例子吗。value

编辑:

这些事件似乎没有填写表单并通过此链接提交:


缺少什么。

不,
keyup
keydown
不足以触发所有类型的事件,它只触发那些事件,特别是,没有其他事件,如
粘贴
输入
更改
单击
或任何其他可能有事件处理程序的事件。因此,我可以添加更改,输入并单击fireKeyevent方法(),或者它们的处理方式不同。您的确切目标是什么?这里没有特定目标,我只想处理各种表单输入。这有时可能发生。我甚至设置了input.value,但它们并没有真正设置,因为附加到它的事件不会触发。尝试填写此网站的表单,然后按login。它不会检测到你输入的任何东西