javascript中调用content页的控件的ID?急!谢谢!

caiter 2008-07-13 09:22:43
本来的语句如下:
for (i = 1; i<4;i++)
{
document.all("S1_AZDrug" + i).value="";
}
aspx页面中分别有S1_AZDrug1,S1_AZDrug2,S1_AZDrug3相对应控件。工作正常。

但现在把页面放到用户控件中,这样一来,加载页面后,原来ID为S1_AZDrug1,S1_AZDrug2,S1_AZDrug3的控件的ID就变了,变成系统自动分配的了?!

我怎样修改我的javascript才能达到原来的要求。

我试过如下: 用document.all("<%=S1_AZDrug1.ClientID%>").value="";可以实现目的,但我不知道怎样利用循环来做???。
javascript 不认 document.all("<%=S1_AZDrug"+i+".ClientID%>").value="".

请大侠赐教!谢谢
...全文
152 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovedelphi2006 2008-07-13
  • 打赏
  • 举报
回复
caiter 2008-07-13
  • 打赏
  • 举报
回复
xiexie
初吻给了烟 2008-07-13
  • 打赏
  • 举报
回复
其它我也没法了
caiter 2008-07-13
  • 打赏
  • 举报
回复
UP
caiter 2008-07-13
  • 打赏
  • 举报
回复
10楼,那样太麻烦。我有很多控件的。
caiter 2008-07-13
  • 打赏
  • 举报
回复
9楼,这条语句document.all(" <%=S1_AZDrug"+i+" %>").value="".不行,编译通不过。
初吻给了烟 2008-07-13
  • 打赏
  • 举报
回复
那就用得到所有的这个类型的标签,再判断它的ID是否包含S1_AZDrug
document.form1.getElementsByTagName("");
namhyuk 2008-07-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 caiter 的回复:]
4楼的其实定义了一个变量传到javascript端,我试一下,document.all(" <%=S1_AZDrug"+i %>").value="". 是否应该是document.all(" <%=S1_AZDrug"+i+" %>").value="".
[/Quote]
我写错了。应该是定义了属性。你试了吗?
初吻给了烟 2008-07-13
  • 打赏
  • 举报
回复
还有方法就是你给这三个控件加上name属性,它是不会变的,在用
for (i = 1; i <4;i++)
{
document.getElementsByName("S1_AZDrug" + i).value="";
}
caiter 2008-07-13
  • 打赏
  • 举报
回复
4楼的其实定义了一个变量传到javascript端,我试一下,document.all(" <%=S1_AZDrug"+i %>").value="". 是否应该是document.all(" <%=S1_AZDrug"+i+" %>").value="".

5楼的不行,name同样变化了。
caiter 2008-07-13
  • 打赏
  • 举报
回复
1楼的没看懂。能解释详细点吗?

2楼的这句话没看懂:“变化的规则是在ID前面加上这个控件ID",什么是控件ID?另,必须用服务端的控件

谢谢回复!
初吻给了烟 2008-07-13
  • 打赏
  • 举报
回复
还有方法就是你给这三个控件加上name属性,它是不会变的,在用
for (i = 1; i <4;i++)
{
document.getElementsByName("S1_AZDrug" + i).value="";
}

namhyuk 2008-07-13
  • 打赏
  • 举报
回复
对了,应该是 document.all(" <%=S1_AZDrug"+i %>").value="".
namhyuk 2008-07-13
  • 打赏
  • 举报
回复
// .ascx里这样返回呢?
public string S1_AZDrug1
{
get { return 控件1.ClientID; }
}
public string S1_AZDrug2
{
get { return 控件2.ClientID; }
}
public string S1_AZDrug3
{
get { return 控件3.ClientID; }
}

然后其他不变。
y3001181027 2008-07-13
  • 打赏
  • 举报
回复
S1_AZDrug1,S1_AZDrug2,S1_AZDrug3这在个是服务端的ID,才会在这控件被调用时解释出来的HTML代码中有变,变化的规则是在ID前面加上这个控件ID,如控件的ID是SEA1,那么前面的ID会变成SEA1_S1_AZDrug1
两个方式,
1、直接用解释出来的ID:SEA1_S1_AZDrug1
2、改用客户端ID,如原来是<div id="AZDrug1" runat="server">改为<div id="AZDrug1">,若确实要用服务端的话,看下是否能在内层或外层再加上一个客户端的ID
初吻给了烟 2008-07-13
  • 打赏
  • 举报
回复
你可以在for 判断查找这些控件是不是包含这个S1_AZDrug,如果包含就是你要的控件了

62,107

社区成员

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

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

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

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