我需要页面
页面#1有2个控件 textbox1(这是记录的ID) textbox2(这是该记录的描述) 搜索按钮
textbox1有一个事件更改,它根据数据
更新textbox2第2页 这是来自第1页上的搜索按钮的呼叫 显示列表或记录 当用户点击记录时,它会更新第1页上的textbox1
window.opener.document.getElementById(toUpdate).value = ctl;
这就像一个魅力
现在我的问题是更改事件不会在第1页
上触发有没有办法在第2页内强制第1页上的更改事件?
答案 0 :(得分:0)
根据您设置事件的方式(如果添加了监听器,或者您正在讨论onchange事件),您可以触发该事件或调用onchange方法,如下所示:
的document.getElementById( 'whateverelementyourelookingfor')平变化();
答案 1 :(得分:0)
通过javascript更新时不会触发Onchange。我建议使用Messaging API。它适用于现代浏览器(和IE8 +)。
从第1页开始,订阅消息:
function handleMessage(event) {
//convert back to javascript object
var updateObj = JSON.parse(event.data);
//Get id from the data in the message
var elem = document.getElementById(updateObj.toUpdate);
//Set the value from the data in the message
elem.value = updateObj.ctl;
//perform change specific functions here.
}
if (window.addEventListener) {
window.addEventListener("message", handleMessage, false);
}
else {
window.attachEvent("onmessage", handleMessage); // For IE8
}
从第2页开始,将消息发送到窗口(而不是调用document.getElementById ...):
//Post the message to the window. Second argument specifies the destination origin.
//Use "*" wildcard for anything
window.opener.postMessage(JSON.stringify({toUpdate: toUpdate, ctl: ctl}), "*");
我整理了一个fiddle来证明这一点(即使消息是从同一个窗口发布的)。