function
textBoxOnKeyDown(event)
{
if(event.keyCode == 13)
{
__doPostBack('Button2','');
}
}
而且使用如下脚本也会失败
{
if(event.keyCode == 13)
{
__doPostBack('Button2','');
}
}
function
textBoxOnKeyDown(event)
{
if(event.keyCode == 13)
{
WebForm_FireDefaultButton(event, 'Button2'); //或在本行前加上return
}
}
WebForm_FireDefaultButton是asp.net2的脚本文件里提供的函数,定义如下:
{
if(event.keyCode == 13)
{
WebForm_FireDefaultButton(event, 'Button2'); //或在本行前加上return
}
}
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;
}
而我测试能工作的脚本如下:
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上测试通过,完整的代码如下:
{
if(event.keyCode == 13)
{
WebForm_FireDefaultButton(event, 'Button2');
__doPostBack('Button2','');
}
}
<%
@ 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 >
后台代码:
<! 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");
}
}
}
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");
}
}
}