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