如果你的控件中出现runat="server"那么,这个控件就是服务器端控件,而JS获取的是客户端
的控件,所以你会获取不到。
这类问题,都有一个通用的解决方法。
先运行下页面,然后看页面源代码,找到你要获取的那个元素,看看那个元素在客户端的ID是什么,最后在JS中获取这个元素。这样就可以了。
如:<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>生成的客户端的代码可能是
<input type="textbox" id="$div$textbox1" />
所以,我们用document.getElementById("$div$textbox1")这个ID参数不是简单的"TextBox1"
而是“$div$textbox1”
为什么会这样,因为C#在将服务器端代码传给客户端之前,会为每个控件生成一个ID,这个ID会包含这个控件的父控件信息,如$div$textbox1中的$div就是这个textbox的父控件,表名这个textbox在一个id="div"的控件里面
还有个知识点需要了解下
ClientID,UniqueID,这两个ID最后在客户端生成的ID是不一样的。
ClientID生成的是客户端的ID属性
而UniqueID生成的是客户端控件的name属性
1.首先通过文本框的使用getelementbyid("idname");方法来获取文本框对象;2.通过文本框对象来获取文本框的value值
在新打开的页面获得前面文本框内的内容:
window.opener.document.getelementbyid('文本框id').value
拓展资料:
根据指定的
id
属性值得到对象。返回
id
属性值等于
sid
的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。
百度百科——getelementbyid