js 回车调用后台事件

 

最近在项目开发做了一个小功能,回车调用后台事件,现在拿出来跟大家分享一下:
前台代码:

    <script type="text/javascript">
//为TextBox指定回车时执行的Button按钮事件
function enterPressExecuteButtonAction(textBoxID, buttonID) {
if (event.keyCode == 13) {
//获取按钮事件
var func = document.getElementById(buttonID).click;
document.getElementById(buttonID).focus();
func();//调用事件
event.returnValue = false;
}
}
//为TextBox屏蔽回车事件
function EnterEventsAction() {
if (event.keyCode == 13) {
event.keyCode = 0;
event.returnValue = false;
}
}

</script>

        <asp:TextBox ID="TextBox1" runat="server" onload="TextBox1_Load" ></asp:TextBox>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"  />
后台代码:

        //按钮事件
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("ni hao 123");
}
//加载事件
protected void TextBox1_Load(object sender, EventArgs e)
{//调用了TextBox扩展方法
TextBox1.RegisterPressEnterAction(this.Button1,ButtonType.Button);
}

还有一个TextBox扩展方法类

 public static class TextBoxExtension
{
/// <summary>
/// 为TextBox指定回车时执行的按钮事件
/// </summary>
public static void RegisterPressEnterAction(this TextBox textBox, WebControl button, ButtonType buttonType)
{
switch (buttonType)
{
case ButtonType.Button:
textBox.Attributes.Add("onkeypress", String.Format("enterPressExecuteButtonAction(this.id,'{0}');", button.ClientID));
break;
case ButtonType.Image:
break;
case ButtonType.Link:
textBox.Attributes.Add("onkeypress", String.Format("enterPressExecuteLinkButtonAction(this.id,'{0}');", button.ClientID));
break;
default:
break;
}
textBox.Attributes.Add("onfocus", "javascript:this.select();");
}
public static void RegisterPressEnterAction(this TextBox textBox, string button, string buttonType)
{
switch (buttonType)
{
case "Button":
textBox.Attributes.Add("onkeypress", String.Format("enterPressExecuteButtonAction(this.id,'{0}');", button));
break;
case "Image":
break;
case "Link":
textBox.Attributes.Add("onkeypress", String.Format("enterPressExecuteLinkButtonAction(this.id,'{0}');", button));
break;
default:
break;
}
textBox.Attributes.Add("onfocus", "javascript:this.select();");
}
/// <summary>
/// 为TextBox指定回车时执行的按钮事件
/// </summary>
public static void RegisterPressEnterAction(this TextBox textBox)
{
textBox.Attributes.Add("onkeypress", "EnterEventsAction();");
textBox.Attributes.Add("onfocus", "javascript:this.select();");
}
}
posted @ 2011-08-05 12:49  易独  阅读(361)  评论(0编辑  收藏  举报
乐巴儿 一个有声音的公众号
长按,识别二维码,加关注