JavaScript style.visibility不';好像不行

JavaScript style.visibility不';好像不行,javascript,visibility,Javascript,Visibility,在我的aspx页面中,我有一个默认设置为visible=“false”的tr。但在下拉列表的选定索引上,我将其设置为visible=“true”。在表单提交中,我正在验证tr中的控件,但无法使用JavaScript找到tr是否可见 我的aspx: <tr id="MeasurementTr" runat="server" visible="false"> <td> &nbsp;</td> <td class="ta

在我的aspx页面中,我有一个默认设置为
visible=“false”
tr
。但在下拉列表的选定索引上,我将其设置为
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>
但我的警报显示什么都没有。它没有显示
null
undefined

可以将值
隐藏
可见
折叠

true
false
是无效的CSS

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


根据经验,通常最好修改asp.net的
visible
属性
visible
不会改变CSS visibility属性。。如果为true,asp.net将根本不会在客户端呈现元素,因此您无法访问它

改为使用具有
可见性:隐藏
显示:无
的类

[udpate]


在cheeso的评论之后将建议更改为
display:none
,因为
可见性:hidden
将保留元素占用的空间,而
display:none
在呈现的页面中不占用空间。。这很可能是您所需要的…

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

@David在我指定的已选择索引更改事件中
protected void DlMeasurement\u SelectedIndexChanged(对象发送方,事件参数e){度量=true;< /Cord> @ PANDYA,看一下我的答案。你的元素根本不被渲染,所以没有任何东西可以访问…也考虑CSS显示:没有样式。它与Visuable不同,但可能是你想要的。是的,在CSS,显示:没有比<代码>更可见性:隐藏< <代码> >ASPNET的
visible
属性。
 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;
     }
 }