JavaScript style.visibility似乎不起作用

时间:2010-03-09 11:40:11

标签: javascript visibility

在我的aspx页面中,我有一个tr,默认设置为visible="false"。但是在下拉列表的选定索引上,我将其设为visible="true"。在表单提交上,我正在验证tr中的控件,但无法使用JavaScript查看tr是否可见。

我的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;
     }
 }

但我的警报什么都没显示。它没有显示nullundefined

3 个答案:

答案 0 :(得分:3)

visible property可以取值hiddenvisiblecollapse

truefalse是无效的CSS。

.style.*属性代表内嵌 CSS(在style 属性中指定)。如果使用样式表设置值,则不会反映在元素的.style.*上。

根据经验,通常最好修改.className

答案 1 :(得分:1)

asp.net的visible属性不会改变CSS可见性属性..当它为真时,asp.net将不会在客户端呈现该元素,因此您无法访问它。

使用带 visibility:hidden display:none的课程代替..

<强> [UDPATE]

在cheeso的评论之后将建议更改为display:none,因为visibility:hidden将保留元素占用的空间,而display:none在呈现的页面中不占用空间..它是,大多数可能,你需要什么...

答案 2 :(得分:-1)

“服务器端”不可见的ASP控件不会在“客户端”呈现,因此HTML中不存在MeasurementTr元素。使用视图源(或其他技术)从浏览器中查看呈现的HTML。