注册 登录
编程论坛 ASP.NET技术论坛

求助:关于控件隐藏与显示

botailang 发布于 2007-07-08 10:18, 1042 次点击
请问各位:能否实现当特定的textbox获得焦点时一个id=“Button1”的button显示,
当textbox失去焦点时此button隐藏
以下是我写的代码:但运行不出以上所说的效果,请高手帮忙修改一下!谢谢




<%@ Page language="c#" Codebehind="shiyan.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.ZhuCe.shiyan" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>shiyan</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
function show()
{
document.getElementById("Button1").style.display="";
}
function asd()
{
document.getElementById("Button1").style.display="none";
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" onFocus="show()" onBlur="asd()" style="Z-INDEX: 101; LEFT: 272px; POSITION: absolute; TOP: 120px"
runat="server"></asp:TextBox>
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 472px; POSITION: absolute; TOP: 120px" runat="server"
Text="Button" Visible="False"></asp:Button>
</form>
</body>
</HTML>
10 回复
#2
botailang2007-07-08 11:06

没人看吗
自己顶一下!

#3
川流不息2007-07-09 09:18
onFocus="show()" onBlur="asd()" 這兩個方法有沒有執行?你在裡面寫一個alert('aaa');試試,看能不能彈出一個窗口。
#4
botailang2007-07-09 10:16

事件执行了
输出了“aaa”

#5
冰彩虹2007-07-09 12:41
页面加载时&lt;asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 472px; POSITION: absolute; TOP: 120px" runat="server" Text="Button" Visible="False"&gt;&lt;/asp:Button&gt;这个按钮在客户端是没有代码的,所以document.getElementById("Button1")根本就找不到对象的吧
#6
冰彩虹2007-07-09 12:48
function show()
{
document.getElementById("Button1").style.visibility="visible";
}
function asd()
{
document.getElementById("Button1").style.visibility= "hidden";
}

<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 472px; POSITION: absolute; TOP: 120px" runat="server"
Text="Button" style="visibility:hidden"></asp:Button>

试试看
#7
botailang2007-07-09 16:26

[QUOTE] function show()
{
document.getElementById("Button1").style.visibility="visible";
}
function asd()
{
document.getElementById("Button1").style.visibility= "hidden";
}
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 472px; POSITION: absolute; TOP: 120px" runat="server"
Text="Button" style="visibility:hidden"></asp:Button>[/QUOTE]


button的代码里怎么会有两个style呢
去掉第一个style,运行时提示缺少对象,光标指示在document.getElementById("Button1").style.visibility="visible";

#8
川流不息2007-07-09 17:18

你把你的javascript語句寫在最後吧,等所有控件加載完後再運行你的javascript

document.all.Button1.style.display="none";

#9
botailang2007-07-09 17:24
可以实现了
但为什么要写在最后呢
#10
sean882007-07-09 17:34
因为第一次页面加载的时候,你的Button1的visible=false,你查看一下源文件,html根本没加载Button1,所以当你调用javascript的方法时找不到Button1

[此贴子已经被作者于2007-7-9 17:36:08编辑过]

#11
botailang2007-07-10 09:05

了解了!
谢谢各位!
以下是实现功能的具体代码:
<%@ Page language="c#" Codebehind="1.aspx.cs" AutoEventWireup="false" Inherits="CalendarTest._1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>shiyan</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" onFocus="show()" onBlur="asd()" style="Z-INDEX: 101; LEFT: 272px; POSITION: absolute; TOP: 120px"
runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server"
Text="Button" style="visibility:hidden"></asp:Button>
</form>
</body>
<script language="javascript">
function show()
{
document.getElementById("Button1").style.visibility="visible";
}
function asd()
{
document.getElementById("Button1").style.visibility= "hidden";
}
</script>
</HTML>

1