在我的aspx页面中,我有一个tr
,默认设置为visible="false"
。但是在下拉列表的选定索引上,我将其设为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>
和我的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
。
答案 0 :(得分:3)
visible
property可以取值hidden
,visible
或collapse
。
true
和false
是无效的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。