function textBoxOnKeyDown(event) { if(event.keyCode == 13) { __doPostBack('Button2',''); }}
而且使用如下脚本也会失败 function textBoxOnKeyDown(event) { if(event.keyCode == 13) { WebForm_FireDefaultButton(event, 'Button2'); //或在本行前加上return }}
WebForm_FireDefaultButton是asp.net2的脚本文件里提供的函数,定义如下: function WebForm_FireDefaultButton(event, target) { if (event.keyCode == 13 && !(event.srcElement && (event.srcElement.tagName.toLowerCase() == "textarea"))) { var defaultButton = document.getElementById(target); if (defaultButton && typeof(defaultButton.click) != "undefined") { defaultButton.click(); event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false; } } return true;}
而我测试能工作的脚本如下: function textBoxOnKeyDown(event) { if(event.keyCode == 13) { WebForm_FireDefaultButton(event, 'Button2'); __doPostBack('Button2',''); } }
在xp专业版,ie6上测试通过,完整的代码如下: <% @ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication5._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 textBoxOnKeyDown(event) { if(event.keyCode == 13) { WebForm_FireDefaultButton(event, 'Button2'); __doPostBack('Button2',''); } } </ script > </ head > < body > < form id ="form1" runat ="server" defaultbutton ="Button1" > < div > < asp:Button ID ="Button1" runat ="server" Text ="Button" OnClick ="Button1_Click" /> < asp:TextBox ID ="TextBox1" runat ="server" onkeydown ='textBoxOnKeyDown(event)' ></ asp:TextBox > < asp:Button ID ="Button2" runat ="server" Text ="Button" OnClick ="Button2_Click" /> </ div > </ form > </ body > </ html >
后台代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace WebApplication5 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { this.Response.Write("Button1_Click"); } protected void Button2_Click(object sender, EventArgs e) { this.Response.Write("Button2_Click"); } }}