2010-03-09 2 views
1

На моей странице aspx у меня есть tr, который по умолчанию установлен visible="false". Но по выбранному индексу выпадающего я делаю это visible="true". На форме submit Я проверяю элемент управления в пределах tr, но не смог найти, видимо ли tr с использованием JavaScript.JavaScript style.visibility, похоже, не работает

Мой ASPX:

<tr id="MeasurementTr" runat="server" visible="false"> 
    <td> 
     &nbsp;</td> 
    <td class="table_label"> 
     Measurement</td> 
    <td> 
     &nbsp;</td> 
    <td> 
     <asp:DropDownList ID="DlMeasurement" runat="server"> 
     </asp:DropDownList> 
    </td> 
    <td> 
     &nbsp;</td> 
</tr> 

и мой код JavaScript,

alert(document.getElementById("ctl00_ContentPlaceHolder1_MeasurementTr").style.visibility); 
if (document.getElementById("ctl00_ContentPlaceHolder1_MeasurementTr").style.visibility=="visible"){ 
    if (document.getElementById("ctl00_ContentPlaceHolder1_DlMeasurement").selectedIndex == 0) { 
     document.getElementById("ctl00_ContentPlaceHolder1_ErrorMsg").innerHTML = "Please Select Your Measurement"; 
     document.getElementById("ctl00_ContentPlaceHolder1_DlMeasurement").focus(); 
     return false; 
    } 
} 

Но мое предупреждение ничего не показывает. Он не показывал null или undefined.

ответ

1

visible свойства asp.net не изменяет свойство видимости CSS .. если это правда, asp.net не будет оказывать элемент на все на стороне клиента, так что вы не можете получить доступ к нему ..

Используйте класс с visibility:hidden display:none вместо ..

[udpate]

изменил предложение о display:none аф ter cheeso, так как visibility:hidden сохранит пространство, которое занимает элемент, а display:none не занимает места на странице рендеринга .. это, скорее всего, то, что вам нужно ...

+0

Также рассмотрите экран css: none style. Это отличается от видимости, но может быть тем, что вы хотите. http://www.devx.com/tips/tip/13638 – Cheeso

+0

@cheeso, очень верно .. я добавлю это в ответ .. –

+0

yep, в css, 'display: none' ближе, чем' visibility: hidden "в свойство' visible' ASPNET. – Cheeso

3

visible property может принимать значения hidden, visible или collapse.

true и false недействительны.

В .style.* свойства представляют рядный CSS (как указано в styleатрибута). Если вы установите значение с помощью таблицы стилей, это не будет отражено в элементе .style.*.

Как правило, вам обычно лучше изменять .className.

+2

'visible' свойство является свойством asp.net ... СМЧ один' visibility' .. –

+0

@David в моем выбранном индексе изменился событием я ве дал 'защищенного недействительного DlMeasurement_SelectedIndexChanged (объект отправителя, EventArgs е) { { MeasurementTr.Visible = true; ' –

+0

@Gaby, как получить свойство asp.net в javascript ... –

-1

Элемент управления ASP, который не отображается на «сторона сервера» не отображается на «стороне клиента», поэтому в HTML не существует элемента MeasurementTr. Используйте источник просмотра (или другой метод), чтобы просмотреть отображаемый HTML из браузера.

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