我有两页
我在第二页中使用“window.open”打开弹出窗口。 我在第二页中有文本框控件,并使用下面的代码尝试在弹出页面中查找控件。
window.opener.document.getElementById('textbox').value
此代码无法找到控件。
然后我检查了第二种形式的页面源,并将控制ID的格式显示出来。就像下面一样。
“_ ctl0_ContentPlaceHolder1_textbox”
并将代码更改为以下并获得成功。 “window.opener.document.getElementById( '_ ctl0_ContentPlaceHolder1_textbox')。值”
我的查询是 - >我不是这种方法。如果我做错了,请纠正。
答案 0 :(得分:1)
使用ASP.NET 4.0,您可以选择设置ClientIDMode,在这种情况下可以帮助您。 将ClientIDMode设置为“Static”将确保框架不会更改您的ID值。
在您拥有文本框的页面中:
<asp:TextBox ID="MyTextBox" runat="server" ClientIDMode="Static" />
然后你应该能够通过这样的方式获得价值:
window.opener.document.getElementById('textbox').value
答案 1 :(得分:1)
问题在于,如果您使用母版页,您的内容页面的控件将被重命名,从而难以从JavaScript访问它们。
使用以下代码解决问题:
<asp:TextBox ID="textbox" runat="server" ClientIDMode="Static"></asp:TextBox>