我有一个带有表单元素和弹出窗口的网页(由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,但这个问题的建议解决方案似乎对我不起作用。也许是因为弹出窗口的缘故。
发布于 2009-05-13 02:38:02
也许是跨窗口在伤害你……尝试在opener中创建一个函数,然后调用该函数。可能会有帮助?
在开场白中:
window.changeMyElement = function(value) {
$(formelement).val(value).change();
}
从弹出窗口中:
opener.changeMyElement(value);
发布于 2009-05-12 23:11:10
这一行应该是有效的:
$(opener.document.formelement).change();
根据jQuery documentation,此行触发每个匹配元素的更改事件。
如果它对你不起作用,那么一定是你的代码出了问题。是否可以通过手动更改表单元素来触发onchange事件?
发布于 2010-04-07 01:27:05
您还可以执行以下操作:
window.opener.document.getElementById('controlname').fireEvent('onchange');
或者在您的上下文中:
$(opener.document.formelement).fireEvent('onchange');
https://stackoverflow.com/questions/855264
复制相似问题