如何切换文档元素的可见性?

时间:2016-03-30 23:55:24

标签: javascript asp.net

我的表单上有一个标签,如下:

<asp:Label ID="lblPwPol" 
     runat="server"
     Visible="false">

  A bunch of text... 

</asp:Label>

Page_Load事件(VB.net)调用的方法中,我附加了一些JS事件处理程序:

    btnPasswordPolicies.Attributes.Add("onClick", "return mShowToolTip();")
    cmdPasswordPolicies.Attributes.Add("onmouseleave", "return mHideToolTip();")

定义如下:

function mShowToolTip(aCtrl, aArg1)
{
    document.getElementById("lblPwPol").style.display = 'block';
    return false;

}

function mHideToolTip()
{
    document.getElementById("lblPwPol").style.display = 'none';
    return false; 
}

加载表单时,标签不可见(正确)。

当我点击标签时,我在JS中得到一个例外:

  

Javascript运行时错误:无法获取未定义或空引用的属性“样式”

这显然意味着document.getElementById("lblPwPol")返回null。

知道我做错了什么吗?我觉得它必须是一个愚蠢的集会,但我根本不认识JS。

我尝试将id="lblPwPol"改为name="lblPwPol",但这并没有什么区别。

2 个答案:

答案 0 :(得分:2)

首先你应该删除标签上的visible =“false”,因为你将它显示为false,它将不会加载到Dom中。并保持style =“display:none” 喜欢这个

<asp:Label ID="lblPwPol" 
 runat="server"
 Style="display:none">

  A bunch of text... 

   </asp:Label>

答案 1 :(得分:0)

我认为你将DOM元素与ASP WebUI WebControl elements混淆(也就是XML以及btw)。在这里查看如何访问像您这样的Label控件:How to access asp:label text property from code behind?