当前位置:编程学习 > C#/ASP.NET >>

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

本来的语句如下:
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="".

请大侠赐教!谢谢 --------------------编程问答-------------------- 你可以在for 判断查找这些控件是不是包含这个S1_AZDrug,如果包含就是你要的控件了 --------------------编程问答-------------------- 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 --------------------编程问答-------------------- // .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; }
}

然后其他不变。 --------------------编程问答-------------------- 对了,应该是 document.all(" <%=S1_AZDrug"+i %>").value="". 
--------------------编程问答-------------------- 还有方法就是你给这三个控件加上name属性,它是不会变的,在用
for (i = 1; i <4;i++) 
    { 
      document.getElementsByName("S1_AZDrug" + i).value=""; 
    } 

--------------------编程问答-------------------- 1楼的没看懂。能解释详细点吗?

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

谢谢回复! --------------------编程问答-------------------- 4楼的其实定义了一个变量传到javascript端,我试一下,document.all(" <%=S1_AZDrug"+i %>").value="". 是否应该是document.all(" <%=S1_AZDrug"+i+" %>").value="". 

5楼的不行,name同样变化了。 --------------------编程问答-------------------- 还有方法就是你给这三个控件加上name属性,它是不会变的,在用 
for (i = 1; i <4;i++) 
    { 
      document.getElementsByName("S1_AZDrug" + i).value=""; 
    }  --------------------编程问答--------------------
引用 7 楼 caiter 的回复:
4楼的其实定义了一个变量传到javascript端,我试一下,document.all(" <%=S1_AZDrug"+i %>").value="". 是否应该是document.all(" <%=S1_AZDrug"+i+" %>").value="". 

我写错了。应该是定义了属性。你试了吗? --------------------编程问答-------------------- 那就用得到所有的这个类型的标签,再判断它的ID是否包含S1_AZDrug
document.form1.getElementsByTagName(""); --------------------编程问答-------------------- 9楼,这条语句document.all(" <%=S1_AZDrug"+i+" %>").value="".不行,编译通不过。 --------------------编程问答-------------------- 10楼,那样太麻烦。我有很多控件的。 --------------------编程问答-------------------- UP
--------------------编程问答-------------------- 其它我也没法了 --------------------编程问答-------------------- xiexie
--------------------编程问答-------------------- 顶
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,