我想在aspx页面的文本框中输入内容时隐藏标签

时间:2013-10-25 19:47:44

标签: c# javascript jquery asp.net

我想隐藏标签,只要在aspx页面的文本框中输入内容。

我正在尝试这样的事情:

protected void txt_LastName_KeyPress(object sender, EventArgs e)
{
    Label_msg.Visible = false;
}
protected void txt_LastName_KeyDown(object sender, EventArgs e)
{
    Label_msg.Visible = false;
}

但它没有发生。我是否需要在焦点事件中写这样的东西?

7 个答案:

答案 0 :(得分:4)

你需要javascript

以下是使用jQuery

的实现
<script>
    $('#txt_LastName').focus(function() {
        $('#Label_msg').hide();
    });
    $('#txt_LastName').blur(function() {
        $('#Label_msg').show();
    });
</script>

普通的jilla解决方案将是

<script>
    document.getElementById("txt_LastName").onfocus = function() {
        document.getElementById("Label_msg").style.display = 'none';
    };
    document.getElementById("txt_LastName").onblur = function() {
        document.getElementById("Label_msg").style.display = 'inherit';
    };
</script>

答案 1 :(得分:2)

这个可能对你有所帮助。做如下......

首先,将Textbox的AutoPostBack属性设置为true

AutoPostBack="True"

然后,使用OnTextChanged事件

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

答案 2 :(得分:1)

您无法更改基于图层事件的服务器端的可见性。你必须将它放入一个javascript程序。

你必须有可能:简单的方法是,使用jQuery(你需要包含jQuery!):

<script type="text/javascript">
$(function() {
    $('#txt_LastName').focus(function() {
        $('#Label_msg').hide();
    });
    $('#txt_LastName').blur(function() {
        $('#Label_msg').show();
    });
}
</script>

第二种方法:努力做到这一点 如果由于某种原因不想使用jQuery,则必须直接使用DOM。 你可以在那里阅读:W3Schools DOM Methods

答案 3 :(得分:1)

您可能需要查看JavaScript MVVM库,例如KnockoutJS,如下所示:

<p>Your value: <input data-bind="value: someValue, valueUpdate: 'afterkeydown'" /></p>
<p>You have typed: <span data-bind="text: someValue"></span></p>

// Here's my data model
var viewModel = {
    someValue: ko.observable("edit me")
};

ko.applyBindings(viewModel); // This makes Knockout get to work

这是一个jsFiddle,用于说明通过KnockoutJS使用JavaScript实现所需的按键功能是多么容易。

答案 4 :(得分:1)

你可以做一些简单的事情,如下所示:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function hideOnKeyPress() {
            document.getElementById('lblHidden').style.display = 'none';
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtMaintCost" onkeypress="hideOnKeyPress(); return true;" runat="server"></asp:TextBox>
        <asp:Label ID="lblHidden" runat="server" Text="I'll hide when you type something in the text box" />
    </div>
    </form>
</body>
</html>

答案 5 :(得分:1)

一个简单的javascript解决方案

<强> HTML

<span id="one">text</span>
<input type="text" onkeypress="hide()" />

<强>的Javascript

var isHidden = false;
function hide(){
  if(!isHidden){
   isHidden = true; 
   document.getElementById("one").setAttribute("style","display:none");
  }
}

jsbin演示

答案 6 :(得分:1)

因为与Winforms不同,ASP.Net表单中没有KeyPress事件,你必须使用JQuery简写代码(用于JavaScript)来处理用户在文本框中输入时隐藏你的标签,如下例所示:

<script>
    $(document).ready(function () {
        $("#txtUserName").keypress(function () {
            $("#lblUser").hide();
        });
    });
</script>