JavaScript style.visibility не работает - PullRequest
1 голос
/ 09 марта 2010

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

Мой 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.

Ответы [ 3 ]

3 голосов
/ 09 марта 2010

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

true и false являются недействительными CSS.

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

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

1 голос
/ 09 марта 2010

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

Вместо этого используйте класс с visibility:hidden display:none.

[udpate]

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

0 голосов
/ 28 октября 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...