首页  ·  知识 ·  
Label
      编辑:  图片来源:网络

3种方法:

 

第一种

 

protected void Page_Load(object sender, EventArgs e)

{

//Page.Form.DefaultButton = "ASPxbtnCommit";

 

SetEnterControl(ASPxbtnCommit);

}

 

 

public static void SetEnterControl(System.Web.UI.Control Ctrl) //设置页面的默认按钮

{

Page mPage = Ctrl.Page;

string mScript;

mScript = @"<script language=""javascript"">

function document.onkeydown()

{

var e = event.srcElement;

var k = event.keyCode;

if (k == 13) //13代表回车键

{

document.all." + Ctrl.ClientID + @".click();

event.cancelBubble = true;

event.returnValue = false;

}

}

</script>";

if(!mPage.IsClientScriptBlockRegistered("SetEnterControl")) {

mPage.RegisterClientScriptBlock("SetEnterControl",mScript);

}

}

 

Page.Form.DefaultButton = "ASPxbtnCommit"; 这种方法经过测试不行

 

 

第2种

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class btnEnter2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

this.TextBox2.Attributes.Add("onkeydown", "if(event.keyCode==13) {document.all." + this.Button2.ClientID + ".focus();document.all." + this.Button2.ClientID + ".click();}");

 

TextBox3.Attributes.Add("onkeydown", "if(event.keyCode==13) {document.all." + this.Button3.ClientID + ".focus();document.all." + this.Button3.ClientID + ".click();}");

 

this.TextBox4.Attributes.Add("onkeydown", "if(event.keyCode==13) {document.all." + this.Button4.ClientID + ".focus();document.all." + this.Button4.ClientID + ".click();}");

}

protected void Button1_Click(object sender, EventArgs e)

{

TextBox1.Text = "你激活了按钮1";

}

protected void Button2_Click(object sender, EventArgs e)

{

TextBox2.Text = "你激活了按钮2";

}

protected void Button3_Click(object sender, EventArgs e)

{

TextBox3.Text = "你激活了按钮3";

 

}

protected void Button4_Click(object sender, EventArgs e)

{

TextBox4.Text = "你激活了按钮4";

 

}

}

 
 
第3种
第一步,先编写简单的页面代码,这里我们只需要一个按钮就足够了。当然,还有按钮事件。
<html>
< head>
< title>测试绑定enter</title>
<script type="text/javascript">
function b_onclick()
{
alert("你好!");
}
</script>
< /head>
< body>
< input type="button" value="测试按钮" id="test" onclick="b_onclick()" />
< /body>
< /html>
第二步,于b_onclick()函数加入如下js代码:
function document.onkeydown()
{
//使用document.getElementById获取到按钮对象
var button = document.getElementById("test");
if(event.keyCode == 13)
{
button.click();
event.returnValue = false;
}
}
然后于IE中运行,你会发现,即使焦点不在按钮上,当你按下回车,依然执行了按钮的函数。
稍微解释一下代码:
event.keyCode == 13是判断按下的是那一个间,13代表的是回车键。
button.click();执行按钮事件。
event.returnValue = false;这个是为了防止浏览器捕捉到用户按下回车键而进行其他操作。例如假如输入框中,没有这行代码的话,在执行完按钮事件后,其还会执行换行的动作。
第三步,很多人都认为做完上面的工作已经完成了整个作业。其实不是的。你尝试使用firefox浏览,就会发现,代码并不会执行。显然,这是因为firefox不支持event事件对象。为了做到跨浏览器,不得不将代码进行优化。
我们可以这个做:
首先,为boby添加一个onkeydown监控函数,如<body onkeydown="BindEnter(event)">
其次修改原来的绑定函数为:
function BindEnter(obj)
{
//使用document.getElementById获取到按钮对象
var button = document.getElementById('test');
if(obj.keyCode == 13)
{
button.click();
obj.returnValue = false;
}
}

为什么要将事件对象作为参数传递呢?这是为了避免进行浏览器判别,节省代码。
OK,到这里已经基本完成了。完整代码如下:
<html>
< head>
< title>测试绑定enter</title>
< script type="text/javascript">
function b_onclick()
{
alert("你好!");
}
function BindEnter(obj)
{
//使用document.getElementById获取到按钮对象
var button = document.getElementById('test');
if(obj.keyCode == 13)
{
button.click();
obj.returnValue = false;
}
}
< /script>
< /head>
< body onkeydown="BindEnter(event)">
< input type="button" value="测试按钮" id="test" onclick="b_onclick()" />
< /body>
< /html>

本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的
收藏至微信