我有一个隐藏的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/

10-10 22:17