我应该为我的文本框使用“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()"/>

我应该为我的文本框使用“onclick”或“ontextchanged”事件来隐藏标签

摆脱 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 来处理您的点击事件,以便您可以隐藏标签客户端。然后不需要回发。