我想隐藏标签,只要在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;
}
但它没有发生。我是否需要在焦点事件中写这样的东西?
答案 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>