getElementById的问题

xp19840522 2012-04-17 01:41:55
document.getElementById('<%=TextBox1.ClientID %>').value和document.getElementById('TextBox1').value有什么区别?
我试了下功能一样
主要是document.getElementById('<%=TextBox1.ClientID %>').value是什么意思
...全文
236 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lugyedo 2012-04-18
  • 打赏
  • 举报
回复
用模板页时,TextBox1的ID是会变的,<%=TextBox1.ClientID %>会取到实际的客户端ID
coooliang 2012-04-18
  • 打赏
  • 举报
回复
看你<%=TextBox1.ClientID %>的值是什么
  • 打赏
  • 举报
回复
使用masterpage时也会出现这种情况。最好使用asp.net 4.0,增加了ClientIDMode属性,可以指定id,不让它动态生成,这样就可以在页面以外的js文件里使用了。
LMAOhuaNL 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
document.getElementById('<%=TextBox1.ClientID %>').value
是推荐的写法,在控件不嵌套的情况下,2者一样,在嵌套的情况下,
document.getElementById('TextBox1')是得不到TextBox1对象的

比如,下面的情况下你就不能使用
document.getElementById('TextBox1').va……
[/Quote]理解了
happytonice 2012-04-17
  • 打赏
  • 举报
回复
document.getElementById('<%=TextBox1.ClientID %>').value
。net解析服务器端控件的id值,有的情况和在开发是页面上写的不一样,这时用getElementById就发现不了对象了,用这种document.getElementById('<%=TextBox1.ClientID %>').value,就不会出现找不到对象的情况了
纤纤素水 2012-04-17
  • 打赏
  • 举报
回复
你把你的textbox放进用户控件什么的 再运行 然后打开浏览器看源码。。结果一目了然。明显就不一样了。。
ChineseCokie 2012-04-17
  • 打赏
  • 举报
回复
这个有什么区别?一样滴
想念旧时光 2012-04-17
  • 打赏
  • 举报
回复
document.getElementById('<%=TextBox1.ClientID %>').value
是根据客户端的ID去取值、你的HTML的标记是 runat="server",所以才会这样去获取值。
document.getElementById('TextBox1').value
是单纯的获取你的HTML标记。
IT-Style 2012-04-17
  • 打赏
  • 举报
回复
ID为TextBox1的服务器控件,最终Render到浏览器的名字可能不是TextBox1,
像在TabContainer以及GridView,DataList等容器控件中时,它们的名字就不是TextBox1了
建议用document.getElementById('<%=TextBox1.ClientID %>').value这种方式.
xcf007 2012-04-17
  • 打赏
  • 举报
回复
嵌套的控件,微软防止生成的id一个模样,所以最后控件id是一串串的玩意,用这个可以得到那个给你的js使用。
chen_ya_ping 2012-04-17
  • 打赏
  • 举报
回复
id="text1"的server控件,最后在页面访问的中(也就是客户端)的id不一定就是text1,你把你的textbox放到gridview中就明白了
msn7788520 2012-04-17
  • 打赏
  • 举报
回复
结贴吧.
ls说的够明白了。
popule_daisy 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
document.getElementById('<%=TextBox1.ClientID %>').value
是推荐的写法,在控件不嵌套的情况下,2者一样,在嵌套的情况下,
document.getElementById('TextBox1')是得不到TextBox1对象的

比如,下面的情况下你就不能使用
document.getElementById('TextBox1').va……
[/Quote]

document.getElementById('TextBox1').value是获取TestBox1这个控件的值。在页面嵌套比如有模板页时,服务端控件通过IIS解析后的id并不是TextBox而是类似于_ctl0_TextBox1,而<%=TextBox1.ClientID %>能得到解析后TextBox1实际的id
wolf_410 2012-04-17
  • 打赏
  • 举报
回复
document.getElementById('<%=TextBox1.ClientID %>').value
这个目测TextBox1应该是服务端控件(runat=server),<TextBox id='TextBox1' runat='server'/>
TextBox1.ClientID获取服务端控件解析后的id(这个id只有页面加载的时候才确定),比如页面请求后解析为<input id="TextBox_1" type='text'/> 那么TextBox1.ClientID==“TextBox_1”

最后document.getElementById()的意思你应该懂
孟子E章 2012-04-17
  • 打赏
  • 举报
回复
document.getElementById('<%=TextBox1.ClientID %>').value
是推荐的写法,在控件不嵌套的情况下,2者一样,在嵌套的情况下,
document.getElementById('TextBox1')是得不到TextBox1对象的

比如,下面的情况下你就不能使用
document.getElementById('TextBox1').value

<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:DataList>
bdmh 2012-04-17
  • 打赏
  • 举报
回复
值一样,也是作为标识,具体解释看帮助

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧