Javascript 从嵌入式用户控件获取ClientID

Javascript 从嵌入式用户控件获取ClientID,javascript,asp.net,user-controls,web-user-controls,Javascript,Asp.net,User Controls,Web User Controls,在一个页面中,我定义了以下内容: <%@ Register Src="MyLocationControl.ascx" TagName="MyLocationControl" TagPrefix="uc3" %> 我无法访问clientID为其赋值 document.getElementById('<%=uc3_MyLocationIDField.ClientID %>').value = "My Value"; 你能告诉我我遗漏了什么吗 使用clientmode=“S

在一个页面中,我定义了以下内容:

<%@ Register Src="MyLocationControl.ascx" TagName="MyLocationControl" TagPrefix="uc3" %>
我无法访问clientID为其赋值

document.getElementById('<%=uc3_MyLocationIDField.ClientID %>').value = "My Value";
你能告诉我我遗漏了什么吗

使用clientmode=“Static”,例如


如果您使用的是ASP.NET 4或更高版本,并且您只有一个要访问的控件,John的解决方案将起作用

如果没有,你仍然可以让它工作。这方面的问题是:-

document.getElementById('<%=uc3_MyLocationIDField.ClientID %>').value = "My Value";
document.getElementById(“”).value=“我的值”;
您正在尝试使用为其生成的ClientID访问服务器端控件-MyLocationIDField-uc3\u MyLocationIDField。这将不起作用,而且,生成的ID不能保证每次呈现时都是相同的

使用语法的要点是您引用的是服务器端代码,因此这应该可以工作,但是-

document.getElementById('<%=MyLocationIDField.ClientID %>').value = "My Value";
document.getElementById(“”).value=“我的值”;

asp.net服务器端控件的ID与它们生成的客户端输出的ID不匹配。做一个查看源代码,你就会明白我的意思。注意:这是asp.net,不是经典的asp,它们非常不同需要删除经典的asp标记
document.getElementById('MainContentPlaceHolder_uxReservationControl_uxRentalLocation_uxRentalLocationDescription').value = "Put something here";
<asp:TextBox ID="txtName" runat="server" ClientIDMode="Static" />
document.getElementById('<%=uc3_MyLocationIDField.ClientID %>').value = "My Value";
document.getElementById('<%=MyLocationIDField.ClientID %>').value = "My Value";