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

How to toggle the visibility of a document element?

本文关键字:可见性 元素 文档 何切换      更新时间:2023-10-09

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

<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运行时错误:无法获取未定义或空引用的属性"style"

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

知道我做错了什么吗?我觉得这一定是一些愚蠢的集会,但我根本不了解JS。

我也试着把id="lblPwPol"换成name="lblPwPol",但这并没有什么区别。

首先,您应该将visible="false"删除到标签中,因为您使其可见为false,所以它不会加载到Dom中。并保持style="display:none"像这个

<asp:Label ID="lblPwPol" 
 runat="server"
 Style="display:none">
  A bunch of text... 
   </asp:Label>

我认为您混淆了DOM元素和ASP WebUI WebControl元素(顺便说一下,它们也是XML)。看看如何访问像您这样的Label控件:如何从代码后面访问asp:Label文本属性?