如果一个asp.net页面中有很多表单框、按钮的话,当我们在一个后面的文本框输入完内容后,按下回车,触发的却永远是在页面的第一个button。而我们所需要的却一般情况下是按下回车是靠近当前表单的一个button。解决的办法是使用js方法来取得输入文本框的onactivate事件,该事件调用一个函数,为我们需要的按钮赋上焦点。
1.首先在页面上新建一个搜索和一个登陆,代码如下:
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 152px; WIDTH: 296px; POSITION: absolute; TOP: 160px; HEIGHT: 139px"
cellSpacing="1" cellPadding="1" width="296" border="1">
<TR>
<TD><FONT face="宋体">产品名</FONT></TD>
<TD>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox></TD>
<TD>
<asp:Button id="Button1" runat="server" Text="搜索"></asp:Button></TD>
</TR>
<TR>
<TD><FONT face="宋体">用户名</FONT></TD>
<TD>
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox></TD>
<TD></TD>
</TR>
<TR>
<TD><FONT face="宋体">密码</FONT></TD>
<TD>
<asp:TextBox id="TextBox3" runat="server"></asp:TextBox></TD>
<TD>
<asp:Button id="Button2" runat="server" Text="登陆"></asp:Button></TD>
</TR>
</TABLE>
</form>
</body>2.在page_load事件中写如下代码
private void Page_Load(object sender, System.EventArgs e)
...{
// 在此处放置用户代码以初始化页面
this.TextBox1.Attributes.Add("onactivate","onbtn1()");
this.TextBox3.Attributes.Add("onactivate","onbtn2()");
}
3.写js代码:
<script>
function onbtn1()
...{
debugger
var d=document.getElementById("Button1");
d.focus();
}
function onbtn2()
...{
var f=document.getElementById("Button2");
f.focus();
}
</script>
本文介绍了一种在ASP.NET页面中通过JavaScript控制输入框回车后触发相应按钮的方法。利用onactivate事件和focus方法,使得回车键能激活当前输入框后的按钮,而非页面上的第一个按钮。

3604





