如何模拟元素的实际onchange?

时间:2012-06-17 06:31:10

标签: javascript javascript-events greasemonkey

我有一个选择元素,它的onchange事件由jQuery事件监听器处理, 并且它的onchange属性为空。

通过此方法触发onchange事件

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

无效。

我想要一个解决方案来模拟该元素上真正的完整onchange事件。

2 个答案:

答案 0 :(得分:3)

尝试:

var element = document.getElementById("element_name");

if ('fireEvent' in element)
    element.fireEvent("onchange");
else {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);
}

证明:

http://jsfiddle.net/iambriansreed/xG7HB/

答案 1 :(得分:1)

怎么样......

$('#element_id').trigger('change');

......或者只是......

$('#element_id').change();

?添加了jsfiddle来说明这一点。

或者你需要一个没有jQuery的解决方案吗?