设置element.value后触发事件

时间:2014-12-26 19:34:33

标签: javascript

我正在尝试用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 BTW。在我使用element.value

设置了值之后,任何人都可以向我展示keyEvent或KeyBoardEvent的示例吗?

编辑:

这些事件似乎没有填写表格并通过以下链接提交:

link

缺少什么。

0 个答案:

没有答案