我的表单上有一个标签,如下:
<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"
,但这并没有什么区别。
答案 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?