2013-05-21 3 views
0

Я уверен, что ответ на мой вопрос здесь где-то, но я не могу его найти. Прошу прощения, если я дублирую.Невидимый DIV недоступен JavaScript

У меня есть DIV, что я устанавливаю его видимость при загрузке страницы в зависимости от данных, которые я оттягиваю.

Так в коде позади:

this.divMyDiv.Visible = false

Если пользователь изменяет выпадающий значение, я стараюсь, чтобы показать DIV

var div = document.getElementById('divMyDiv'); 
div.style.display = 'block'; 

Если DIV установлен в положение, видимых код позади на начальной загрузке страницы все в порядке. DIV будет отображаться и скрываться, когда я изменяю значение раскрывающегося списка. Однако, когда DIV скрыт при загрузке страницы, var div в JavaScript всегда имеет значение null. Я пробовал var div = document.getElementById('<%=divMyDiv.ClientID%>');, но получаю те же результаты. Я также попытался переместить JS в нижнюю часть страницы. Те же результаты.

+1

Желание я мог бы отметить более одного ответа. Отмечен тот, с которым я столкнулся. Спасибо всем. – Fred

+0

@downvoter Будь красивой, если можешь оставить комментарий, чтобы я знал, где я ошибся с этим вопросом. – Fred

ответ

0
this.divMyDiv.Visible = false 

... предотвратит делений от визуализируемого на всех и Javascript не может его найти. Если вы все же хотите отобразить его и использовать display:none, чтобы скрыть его, вам нужно будет сделать это;

this.divMyDiv.Style["display"] = "none"; 
0

Настройка элемента управления aspx на Visible = false на стороне сервера означает, что элемент управления не будет отображаться вообще в ответе Html, и, следовательно, он не доступен на всех клиентских сторонах для использования javascript. Вам нужно будет отобразить его (Visible=true), но затем скрыть элемент управления с помощью css, например. style='display:none' или аналогичный. См. Также Question regarding Visible=false and display:none;

0

Если это свойство является ложным, серверный элемент управления не отображается. Вы должны учитывать это при организации макета вашей страницы.

Если вы хотите, чтобы элемент управления отображался, но не был видимым, вы должны оставить Visble = true и скрыть элемент управления с помощью скрипта или css.

div.style.display = 'none'; 

См http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspx

0

в код использования

вместо this.divMyDiv.Visible = ложь использование этого divMyDivAttributes.Add ("Дисплей", "нет");

Затем она будет оказана яваскрипт и ваши другие функции Java скрипт будет работать корректно слишком

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