2013-11-28 46 views
3

我需要用JS触发input的onchange事件。现在我用这个:如何在没有jQuery的IE中使用JavaScript触发onchange元素事件

document.getElementById("myElement").onchange(); 

但似乎IE不能执行。我知道我可以用jQuery来触发它,但是在这个项目中,我无法使用它。有没有其他方法可以做到这一点?

在IE
+2

http://stackoverflow.com/questions/10876152/onchange-not-firing-in-ie – BeNdErR

+0

在IE8和下面你通常会使用'onpropertychange'事件 – adeneo

+0

这不是我的情况的解决方案。我不能改变DOM中的元素,我只是可以用JS来影响它们。 –

回答

4

使用fireEvent

document.getElementById("myElement").fireEvent('onchange'); 

为IE9 +使用dispatchEvent

if(document.fireEvent) { 
    document.getElementById("myElement").fireEvent('onchange'); 
} else { 
    var event = document.createEvent("HTMLEvents"); 
    event.initEvent("change",true,false); 

    document.getElementById("myElement").dispatchEvent(event); 
} 
+1

你是对的澳洲航空,我已经改进了我的回答 –

+0

这是一个不错的,但仍然无法在IE8和prev。 –

+0

你可以用示例代码做一个小提琴吗? –

相关问题