在Javascript中访问ASP.NET控件

在Javascript中访问ASP.NET控件,javascript,asp.net,Javascript,Asp.net,我的ASP.NET web应用程序中有以下Javascript行: document.getElementById('<%=myTextBox[0].ClientID %>').value = "test"; 使用document.getElementById(“”).value=“test”给了我一个错误,它说myIndex没有定义,我想因为myIndex像服务器端参数一样使用,我该如何解决它 这是我的完整JavaScript函数: function OnFoodChang

我的ASP.NET web应用程序中有以下Javascript行:

document.getElementById('<%=myTextBox[0].ClientID %>').value = "test";
使用
document.getElementById(“”).value=“test”
给了我一个错误,它说myIndex没有定义,我想因为myIndex像服务器端参数一样使用,我该如何解决它

这是我的完整JavaScript函数:

   function OnFoodChange(myCmb,myIndex) {
               //alert('5');
try{
               var q = document.getElementById('<%= HFFoodPrice.ClientID %>').value.toString();
           var q2 = q.split(';');
           var index = 0;
           //alert(myCmb.selectedIndex.toString());

           //var e = document.getElementById(myCmb);
           var strUser = myCmb.options[myCmb.selectedIndex].value;

           document.getElementById('<%=myTextBox[0].ClientID %>').value = strUser;

           for (var j = 0; j < q2.length; j++) {
               if (q2[j] != '') {
                   var q3 = q2[j].split(',');
                   {

                   }
               }
           }
           }
           catch(err)
           {
           alert(err.message);
           }
       }
函数OnFoodChange(myCmb,myIndex){ //警报(“5”); 试一试{ var q=document.getElementById(“”).value.toString(); var q2=q.split(“;”); var指数=0; //警报(myCmb.selectedIndex.toString()); //var e=document.getElementById(myCmb); var strUser=myCmb.options[myCmb.selectedIndex].value; document.getElementById(“”).value=strUser; 对于(var j=0;j您正在尝试将服务器端和客户端混合使用。它不是这样工作的。您需要将服务器阵列传输到服务器上的javascript,然后才能在客户端访问其索引。

您正在尝试将服务器端与客户端混合使用。它不是这样工作的。您需要将服务器阵列传输到服务器上的javascript,然后才能在客户端访问其索引。

发送textbox的此控件id,而不是以asp.net控件id的形式发送索引,这可能不是您所期望的

在代码隐藏中

ddl.Attributes.Add("onChange", "return OnFoodChange(this,'" + myTextBox[i].ClientID + "');");
HTML格式的

function OnFoodChange(myCmb,myTextBoxId) {
 currentTextBox = document.getElementById(myTextBoxId);
//Your code...
}

发送textbox的此控件id,而不是发送索引,因为asp.net控件id可能与您预期的不同

在代码隐藏中

ddl.Attributes.Add("onChange", "return OnFoodChange(this,'" + myTextBox[i].ClientID + "');");
HTML格式的

function OnFoodChange(myCmb,myTextBoxId) {
 currentTextBox = document.getElementById(myTextBoxId);
//Your code...
}

你能发布一些详细的代码以便我能更好地帮助你吗?你确定你有一个名为myTextbox的Textbox服务器端数组吗?您需要进一步详细说明您正在尝试做什么以及如何尝试。现在只有一些零碎的信息需要处理。你能发布一些详细的代码以便我能更好地帮助你吗?你确定你有一个名为myTextbox的Textbox服务器端数组吗?您需要进一步详细说明您正在尝试做什么以及如何尝试。现在只有一些零碎的信息需要处理。是否为myTextBox中的每个文本框分配id?在将其添加到数组之前,必须为TextBox分配id。TextBox t=新的TextBox();t、 ID=“SomePrefixIfYouWant”+UniqueNumberMightBeLoopVariable.ToString();myTextBox.Add(t);您也必须在这里反映ddl.Attributes.Add(“onChange”,“returnonfoodchange(this,“+i+”);”;您不应该发送它,您需要使用相同的命名约定发送,该命名约定用于将id分配给文本框,例如“SomePrefixIfYouWant”+UniqueNumberMightBeLoopVariable.ToString();好的,然后在浏览器中查看页面的来源,并查看文本框的id?是否为myTextBox中的每个文本框分配id?在将文本框添加到数组之前,必须为其分配id。TextBox t=新的TextBox();t、 ID=“SomePrefixIfYouWant”+UniqueNumberMightBeLoopVariable.ToString();myTextBox.Add(t);您也必须在这里反映ddl.Attributes.Add(“onChange”,“returnonfoodchange(this,“+i+”);”;您不应该发送它,您需要使用相同的命名约定发送,该命名约定用于将id分配给文本框,例如“SomePrefixIfYouWant”+UniqueNumberMightBeLoopVariable.ToString();好的,然后在浏览器中查看页面的源代码,并查看文本框的ID是什么?