当弹出窗口中的JavaScript更改输入元素时,引发“onChange”事件

时间:2009-05-12 22:51:06

标签: javascript jquery popup onchange

我有一个带有表单元素和弹出窗口的网页(由window.open打开)。

两者都有jQuery可用。

弹出窗口有一个javascript,可以更改开启窗口中的表单元素。通过做...完美地工作。

$(opener.document.formelement).val(vals[0]);

但是,通过这样做,onChange事件将不会触发。但是,这将是其他一些页面元素所必需的。所以我试着用

自己激活onChange事件
$(opener.document.formelement).change();

但这没有任何作用。

任何提示?由于其他页面元素的体系结构,我肯定必须触发onChange事件。

此问题类似于Call Javascript onchange event by programatically changing textbox value,但该问题的建议解决方案似乎对我不起作用。也许那是因为弹出窗口。

3 个答案:

答案 0 :(得分:10)

也许它的横向窗口正在伤害你...尝试在你打电话的开启者里面做一个功能。可能有帮助吗?

在揭幕战中:

window.changeMyElement = function(value) {
  $(formelement).val(value).change();
}

来自弹出窗口:

opener.changeMyElement(value);

答案 1 :(得分:2)

这条线应该有效:

$(opener.document.formelement).change();

根据jQuery documentation,该行触发每个匹配元素的change事件。

如果它不适合你,那么你的代码就会出现问题。你可以通过手动更改表单元素来触发onchange事件吗?

答案 2 :(得分:0)

你也可以这样做:

window.opener.document.getElementById('controlname').fireEvent('onchange');

或者在您的背景下:

$(opener.document.formelement).fireEvent('onchange');