当点击空的asp:textbox时我想立即将asp:标签的可见性设置为false

时间:2014-12-17 11:43:10

标签: c# asp.net textbox textchanged

单击空的asp:textbox时我想立即将asp:标签的可见性设置为false 我为验证检查设置了一些标签 当文本框为空时,标签变为可见,但是当文本更改或单击文本框进行编辑时,标签不可见 请帮帮我

代码:

 protected void Button1_Click(object sender, EventArgs e)
{
    if (TextBox1.Text == "")
        Label1.Visible = true;

}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    Label1.Visible = false;

}

3 个答案:

答案 0 :(得分:1)

您可以使用JQuery立即隐藏标签(无需重新加载页面)。您的文本框和标签都有ID,您可以使用asp.net 4中的ClientID属性获取它们。

$(document).ready(function(){
    var textbox = $('#<%=textboxId.ClientID%>');
    var label = $('#<%=labelId.ClientID%>');

    textbox.click(function(){
        if(textbox.val().length == 0){
            label.hide();
        }
    });
}); 

答案 1 :(得分:0)

确保您保留了AutoPostBack =&#34; true&#34;在TextBox1上

protected void Button1_Click(object sender, EventArgs e)
{
        if (TextBox1.Text == "")
            Label1.Visible = true;

}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
        if(TextBox1.Text != string.empty)
        {
            Label1.Visible = false;
        }

}

但是还有其他有效的方法可以验证相同的效果。 例如。 ASP验证器,     JQuery Validators

答案 2 :(得分:0)

尝试在此使用jquery

此处标签可见性将根据文本框值的变化而变化。

<强>代码

$(function () {
    $('#<%= txtbox1.ClientID%>').on('change keyup paste', function () {
        if ($('#<%= txtbox1.ClientID%>').val().length == 0) {
            $('#<%= lblTest.ClientID%>').css("visibility", "hidden");
        }
        else {
            $('#<%= lblTest.ClientID%>').css("visibility", "visible");
        }
    });
});