【发布时间】:2012-02-06 14:24:36
【问题描述】:
我在 ASP.Net 4.0 网站上有一个标签,当用户在文本框中键入时,我试图隐藏它。
我有一个在文本框的 Keypressevent 上触发的 Javascript 函数。
所以,我的 Javascript 函数是:
function hideLabel(sender, e) {
document.getElementById('<%=lblResult.ClientID%>').style.display = 'none';
}
我的文本框和标签如下:
<tr><td>
<asp:Label ID="lblResult" runat="server" Visible="True"></asp:Label>
</td></td>
<tr><td>
<asp:TextBox ID="txtEmailAddress" runat="server" Width="200px"
CssClass="customtxt" onkeypress="hideLabel(this, event)"></asp:TextBox>
</td></td>
函数触发但我收到以下错误:Microsoft JScript 运行时错误:需要对象
我还在我的函数中尝试了以下代码行,但这也不起作用:
document.getElementById('lblResult').style.visibility = 'hidden';
任何人都知道为什么这在 IE 8 中失败 - 它在 Chrome 中正常工作。
【问题讨论】:
-
几点:1)标签定义为你所做的,它实际上被呈现为
<span id="MainContent_lblResult">Text here</span>- 这可能不是你想要的 - 你应该将AssociatedControlID设置为如果您想要<label>,则为文本框的 ID。 2) 您是否尝试过打开 IE 开发者工具 (F12) 并检查控制台是否有错误?您拥有的代码应该可以工作,并且我已经测试了类似的设置(尽管在 IE8 模式下使用 IE9)。 -
您的第二次 JS 尝试不起作用:控件可能没有您编写的 ID(您可以使用 ClientID 属性),并且 Visibility 是一个 ASP。 NET 属性在 DOM 中不存在。
标签: javascript asp.net label visible onkeypress