Синтаксис для вторичной розетки отличается, вам нужно определить объект - это первый параметр, чтобы связать параметр массива
То, что, вероятно, происходит, - то, что Ваш элемент/управление в рамках одних или нескольких средств управления ASP.NET, которые действуют как именованные контейнеры (Основная страница, ITemplate, Мастер, и т.д.), и это заставляет его идентификатор изменяться.
Можно использовать "источник представления" в браузере, чтобы подтвердить, что это - то, что происходит в представленном HTML.
Если Ваш JavaScript находится на странице ASPX, самый легкий способ временно работать вокруг этого состоит в том, чтобы использовать свойство ClientID элемента. Например, если Вы имели контроль по имени TextBox1, на который Вы хотели сослаться через JS:
var textbox = document.getElementById('<%= TextBox1.ClientID %>');
Если у Вас есть текстовое поле:
<asp:TextBox id="txtText" runat="server" />
Можно использовать:
var textBox=document.getElementById('<%=txtText.ClientID %>');
Любой WebControl выставляет то же свойство ClientID.
Все, хотя на вопрос ответили, думали, что я просто отправлю некоторую дальнейшую информацию...
Rick Strahl, предоставленный вполне интересная работа вокруг к этой проблеме.
http://www.west-wind.com/WebLog/posts/252178.aspx
К счастью, когда ASP.NET 4.0 прибывает, она позволит Вам указывать exacly, каков клиентский идентификатор будет!
http://www.codeproject.com/KB/aspnet/ASP_NET4_0ClientIDFeature.aspx
Создание элемента runat="server"
изменяет клиентский идентификатор того элемента на основе того, какие именованные контейнеры ASP.NET это в. Таким образом, если Вы используете document.getElementById
для управления элементом необходимо будет передать его новый идентификатор, сгенерированный.NET. Изучите свойство ClientId для получения, который генерировал идентификатор... можно использовать его встроенный в JavaScript как так:
var element = document.getElementById('<%=myControl.ClientID%>');