我有一个隐藏的div元素。
<div class= "CTL" id="CTL" runat="server" style="display:none">
<p class ="divider">
CTL
</p>
<asp:Button ID="CTL_button" runat="server" Text="View CTL"
onclick="CTL_button_Click" />
</div>
我试图基于页面Load返回的SQL值使div元素出现或保持隐藏:
window.onload= function show_CTL() {
if("<%=_CurrentUser.IsCTL%>" == "True"){
document.getElementById('CTL').style.display ="block";
}
else{
// document.getElementById('CTL').style.display ="none";
}
但是div元素仍然显示,无论返回值如何。
似乎只执行了循环的真正部分...
最佳答案
将条件强制转换为JavaScript中的Boolean
,您可以这样操作:
window.onload = function show_CTL() {
var el = document.getElementById('CTL');
if(Boolean("<%=_CurrentUser.IsCTL%>") && el){
el.style.display = "block";
}
else{
el.style.display = "none";
}
}
如果布尔对象没有初始值,或者传递的值是以下值之一:
0
-0
null
""
false
undefined
NaN
该对象设置为false。对于任何其他值,它都设置为true(即使使用字符串“ false”)!
现在我想知道,为什么不简单地在
visible
属性中添加条件?<div class="CTL" id="CTL" runat="server" visible=<%=_CurrentUser.IsCTL%>></div>
这样就不需要JavaScript。
关于javascript - Div元素隐藏和显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23118120/