日期:2014-05-17  浏览次数:20397 次

【求助】文本页面中,焦点的控制
要实现的要求,
第一步,TextBox内输入文本后,回车,可以执行 Button1的Click事件
第二步,Button1的Click事件完成后,Web的焦点反馈TextBox

目前,第一步已经实现
实现原理,TextBox内回车的时候,焦点设定为Button1
问题,第二步怎么实现
不知道,请各位帮忙,感谢

-------------------------

第一步实现的具体方法

1:加javascript语句如下
  <script type ="text/javascript" >
  function SetKeyFocus(str1)
  {
  if(event.keyCode==13)
  {
  var a;
  a=str1;
  eval("window.document.form1."+a+".focus();");
  }
  }
  </script>


2:TextBox控件事件增加如下

  <asp:TextBox ID="tbAppName" runat="server" onkeydown="SetKeyFocus('btnAppAdd');" ></asp:TextBox>

------解决方案--------------------
Button1是个服务器控件吗?
如果是,那么在
Button1的Click事件 里面,
tbAppName.Focus();即可将光标移动到tbAppName上

如果是html button 那么onclick时间里面 "document.getElementById('tbAppName').focus()"
即可

------解决方案--------------------
你要是在服务器控件里实现,因为Button要提交的,可以这样写
protected void Button1_Click(object sender, EventArgs e)
{
form1.DefaultFocus = "tbAppName";
}

例子
<%@ Page Language="C#" %>

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

protected void Button1_Click(object sender, EventArgs e)
{
form1.DefaultFocus = "TextBox2";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="点击提交,将焦点定位在 TextBox2 上" OnClick="Button1_Click"
Style="height: 21px" />
</form>
</body>
</html>
------解决方案--------------------
直接拷贝执行这个例子
你就明白了
HTML code
<%@ Page Language="C#" %>

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

  protected void Button1_Click(object sender, EventArgs e)
  {
    form1.DefaultFocus = "TextBox2";
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
  <script>alert("这个只弹出一次,如果弹出多次,页面就是刷新了。")</script>
</head>
<body>
  <form id="form1" runat="server">
  <asp:ScriptManager ID="ScriptManager1" runat="server">
  </asp:ScriptManager>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    TextBox1:<asp:TextBox ID="TextBox1" runat="server">
    </asp:TextBox>
    <br />
    TextBox2:<asp:TextBox ID="TextBox2" runat="server">
    </asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="点击提交,将焦点定位在 TextBox2 上" OnClick="Button1_Click"
      Style="height: 21px" />
    </ContentTempla