2009-10-30 2 views
0

document.getelementbyid('txtbox') не работает, когда я использовал его на странице содержимого, поскольку он работает на обычной веб-странице. Значение равно null, когда оно используется на странице содержимого. Plz кто-нибудь помочь мнеФункция Javascript не работает должным образом на главных страницах

+0

Вы уверены, что идентификатор текстового поля является txtbox и размещен на самой странице контента? – rahul

+0

S ... Он находится только на странице содержания. – Nila

+0

Я рекомендую вам использовать какой-либо инструмент, например, панель разработки IE или Firebug, чтобы посмотреть, как выглядит ваш рендеринг html и протестировать ваши скрипты. – Matias

ответ

2

Идентификатор будет изменен, вы можете использовать что-то вроде:.

document.getElementById (<% = txtTextBox.ClientID%>) значение

или вы можете просмотреть исходный код для получить идентификатор в надежде, что он не изменится снова.

Если у вас есть опция, я бы переключился на какой-то другой движок, такой как asp.net mvc, где у вас есть контроль над HTML.

+0

ASP.NET 4 будет лучше поддерживать новую клиентскую идентификацию ClientIDMode: http://www.asp.net /learn/whitepapers/aspnet4/default.aspx#_TOC3_5 –

+0

Спасибо. Это работает – Nila

2

Если страница отображается, если текстовое поле находится под другим контролем, идентификатор имеет тенденцию к изменению. Вы можете использовать ClientId свойство:

document.getElementById("<%= txtbox.ClientID %>") 
1

Читать эту статью

Control ID Naming in Content Pages

ASP.NET позволяет определенные элементы управления, чтобы быть обозначается как именования контейнеров. Именование контейнера служит новым идентификатором ID пространства имен. Любые серверные элементы управления, которые отображаются в контейнере для именования , имеют значение отображаемого идентификатора, префикс с идентификатором контейнера именования .

Именования контейнеров не только изменить вынесенного значения атрибута ID, но и влияют на управление может быть программно ссылаться из кода-за страницы ASP.NET в классе. Метод FindControl ("controlID") - это , который обычно используется для программно Ссылка на веб-элемент управления. Тем не менее, FindControl не проникает через контейнеры наименования . Следовательно, вы не можете использовать метод Page. FindControl для ссылки элементов управления в GridView или другом контейнере имен .

Главные страницы и ContentPlaceHolders реализованы как обозначение контейнеров.

Смежные вопросы