我应该为我的文本框使用“onclick”或“ontextchanged”事件来隐藏标签
本文关键字:ontextchanged 事件 标签 隐藏 onclick 文本 我应该 我的 | 更新日期: 2023-09-27 17:55:52
我正在使用 asp.net c#,我想实现的是当用户在表单上的文本框内单击以隐藏标签时(我使用此标签进行一些反馈)。
我正在尝试以下代码,但标签从未隐藏:
hiddenMsg.Visible = true;
.
.
.
private void compTxt_TextChanged(object sender, EventArgs e)
{
if (!IsPostBack)
{
hiddenMsg.Visible = false;
}
}
在我的aspx文件中,我有以下内容:
<asp:TextBox ID="compTxt" runat="server" TabIndex='11' AutoPostBack="true" ontextchanged="compTxt_TextChanged" ></asp:TextBox>
[更新了我的问题]
我正在使用Javascript来实现我的目标,并且为了实现这一目标,我也在JS中使用style.display属性而不是Visible = false,但是我不确定我在asp:TextBox中使用的方法,谁能帮助我如何从asp:TextBox调用JavaScript方法?
function hideMsgs() {
document.getElementById('<%= hiddenMsg.ClientID %>').style.display = 'none';
}
<asp:Label ID="hiddenMsg" runat="server" Text="Successfully Saved" style="display:inherit;"/>
<asp:TextBox ID="compTxt" runat="server" TabIndex='11' OnClientClick="hideMsgs()"/>
摆脱 IsPostBack 检查,它将始终是回发。
private void compTxt_TextChanged(object sender, EventArgs e)
{
hiddenMsg.Visible = false;
}
对于客户端解决方案,在页面加载中:
protected void Page_Load(object sender, EventArgs e)
{
compTxt.Attributes.Add("onclick", "document.getElementById('hiddenMsg').style.display = 'none';");
}
如果在项目中使用母版页,请在页面加载中改用以下行:
compTxt.Attributes.Add("onclick", "document.getElementById('" + hiddenMsg.ClientID + "').style.display = 'none';");
单击客户端永远不会导致回发。您需要回发来处理该代码。我建议使用 javascript 来处理您的点击事件,以便您可以隐藏标签客户端。然后不需要回发。