没分了,不好意思哈,帮忙.为什么js调用控件的ID变了名字

bb_chen 2012-09-14 05:08:46
 <asp:TextBox ID="tbcityid" runat="server" Width="59px"></asp:TextBox>
<input type="button" class="form" name="Submit" value="查询" onclick="ShowModelWindow();" />


<script type="text/javascript" defer="defer">

function ShowModelWindow()
{
var iTop = (window.screen.availHeight - 510) / 2; //获得窗口的垂直位置;
var iLeft = (window.screen.availWidth - 650) / 2; //获得窗口的水平位置;

debugger;
var cityid = document.getElementById('ctl00_workspace_tbcityid').value;

。。。。。。

}


我用 var cityid = document.getElementById('tbcityid').value; 得不到值

然后用 var cityid = document.getElementById('ctl00_workspace_tbcityid').value; 就可以了


为什么会多了ctl00_workspace_这部分??
我是在下载的源程序里修改的

...全文
140 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiedu414 2012-09-14
  • 打赏
  • 举报
回复
模板页 可所有显示数据的控件为了避免在发送到客户端的html中出现重复的ID,都会在控件前加入默认生成的一个前缀(后缀)。要么自己用js判断该加什么前缀(后缀),要么js遍历节点。
在不想依赖C#代码的前提下,建议用Jquery的选择器,这样的代码比较干净,并且易读。
bb_chen 2012-09-14
  • 打赏
  • 举报
回复
现在又遇到问题了,当开启新页面后,我要把值传回去。

我用

window.opener.document.getElementById('<%=tbdistrictid.ClientID%>').value = a; 就不行

还是要用回这种

window.opener.document.getElementById('ctl00_workspace_tbcityid').value = a; 才行
bb_chen 2012-09-14
  • 打赏
  • 举报
回复
你们还在不

现在又遇到问题了,当开启新页面后,我要把值传回去。

我用

window.opener.document.getElementById('<%=tbcityid.ClientID%>').value = a; 就不行

还是要用回这种

window.opener.document.getElementById('ctl00_workspace_tbcityid').value = a; 才行
bb_chen 2012-09-14
  • 打赏
  • 举报
回复
什么都不说了,心里非常感谢各位。
实在是没分了。

一个菜鸟,分不够用
  • 打赏
  • 举报
回复
当一个控件在模板页中时,这个控件的Client ID将会被附着与他的Content placeholder ID.所以,如果一个元素的ID为txtTest”,那么这个新的Client ID就会像"ctl00_ContentPlaceHolder1_ txtTest”.

所以,当你试着用document.getElementById(‘txtTest’), 你将无法使用javascript来访问txtTest,你需要通过调用document.getElementById(‘ctl00_ContentPlaceHolder1_ txtTest’)来访问它。

为了避免对这个较长的Client ID进行硬编码,我们可以通过使用document.getElementById('<%=txtTest.ClientID%>')访 问控件,这样就能够访问txtTest.
bb_chen 2012-09-14
  • 打赏
  • 举报
回复
呵呵 从winform转过来的,标准的菜鸟

什么都不说了,心里非常感谢各位
bb_chen 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

你有用母版页吧...
[/Quote]

母版页会有影响吗?
我用了母版页和框架
bb_chen 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

你有用母版页吧...
[/Quote]

是啊 用了母版页
xb12369 2012-09-14
  • 打赏
  • 举报
回复
因为亲把textbox放在母版页了!

var aa = $("#<%=TextBox1.ClientID %>");
alert(aa);
试试
cloudapex 2012-09-14
  • 打赏
  • 举报
回复
你有用母版页吧...
Banianer 2012-09-14
  • 打赏
  • 举报
回复
你用的是服务端控件,是会变ID的。

document.getElementById('<%=TextBox1.ClientID %>
PandaIT 2012-09-14
  • 打赏
  • 举报
回复
document.getElementById('<%=tbcityid.ClientID%>')
bb_chen 2012-09-14
  • 打赏
  • 举报
回复

更要命的是 在我的电脑上能运行,换了一台电脑就不能运行,是不是需要安装什么组件??

62,074

社区成员

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

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

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

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