【转】JS回车提交

protected void Page_Load(object sender, EventArgs e) 

this.Page.SetFocus(TextBox1);//设置焦点 


}
 

-------------------------------------------
 
protected void Page_Load(object
 sender, EventArgs e) 

//回车后 Button1提交 


this.Page.RegisterClientScriptBlock("_autoPostBack"" <script type=\"text/javascript\"> function document.onkeydown(){ if (event.keyCode == 13){ document.getElementById('" + Button1.ClientID+ "').click(); }} </script> "); 
}

asp.net(c#)如何在页面加载时给文本控件添加焦点

this.Page.RegisterStartupScript("","<script>document.forms(0).txtFamily.focus(); document.forms(0).txtFamily.select();</script>"); 

如何设置 asp.net 页面中的回车默认按钮

logonidtextbox.attributes["onkeydown"]="if(event.keycode==13){document.all.logonpasswordtextbox.focus();   return   false;}";   
    
  logonpasswordtextbox.attributes[
"onkeydown"]="if(event.keycode==13){document.all.buttonlogon.click();   return   false;}";  

或者文本框的 chenage 事件中添加代码

页面中的回车都转成 Tab

<script language="javascript" event="onkeydown" for="document">
if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='')
event.keyCode
=9
;
</script>

ASP.NET 中,如果同一页面有多个文本框,在每个文本框按“回车”按钮,将会默认响应第一个 Button Click 事件,怎样能随意的按回车键而不引发意外的响应或者怎样在不同的地方按回车键得到不同的响应

二、在不同的地方按回车键得到不同的响应
    如果同一页面上有多个文本框(TextBox),每个文本框对应不同提交按钮(Button),如下列“登录”的页面里,有“输入邮箱号”和“输入帐号”两个文本框和“进入邮箱”、“进入社区”两个按钮。

实现步骤如下:

1
。建立页面和代码文件(此步骤不详细介绍)
2。给 form 加上 onkeydown="keydown()"
以屏蔽掉页面的回车响应
    keydown()的代码如下:
        
function keydown() { }

3。给“输入邮箱号”的文本框加上 onkeydown="mail();"让它响应“进入邮箱”按钮事件
    mail()代码如下:
        
function
 mail() 
        

            
if(event.keyCode==13

            
{
                 document.all.MAIL.click(); 
                 alert('mail'); 
            }

         }

 
4。给“输入帐号”的文本框加上 onkeydown="bbs();"让它响应“进入社区”按钮事件
    bbs()代码如下:
        
function
 bbs() 
        
{
             
if(event.keyCode==13
)
             
{
                 document.all.BBS.click(); 
                 alert('bbs');
             }

         }


按回车执行页面上的指定按钮事件

ASP.NET 中让同一页面不同的文本框在按回车时响应不同的提交按扭的事件

1、第一步:先创建以下javascript,如下:
<script language="javascript">

<!--
function KeyDown()
 
if(event.keyCode==13
{
  
//在页面form中,按回车不触发事件

  return false;
 }

}


function doButton()
 
if(event.keyCode==13
{
  
//btSubmit指对应的提交按扭的id名称

  document.all.btSubmit.click(); 
 }

}


//-->
</script>


2、第二步:在 FORM 中加入“onKeyDown”标签,如下:
<form id="Form1" method="post" runat="server" onKeyDown="return KeyDown()">

</form>

3、第三步:在所要按回车的文本框上加入“onKeyDown”标签,如下:
<asp:TextBox id="TextBox1" runat="server" onKeyDown="doButton()"></asp:TextBox>



这是提交按扭:
<asp:Button id="btSubmit" runat="server" Text=" 提交 "></asp:Button>

以上仅供参考
呵呵,经自己亲自试演,如下可行,要先给按钮获得焦点

this.TextBox1.Attributes.Add("onkeypress","if(event.keyCode==13){document.all.btnGOTO.focus();document.all.btnGOTO.click();   return   false;}");
this.TextBox1.Attributes.Add("onkeydown","if(event.keyCode==13){document.all.btnGOTO.focus();document.all.btnGOTO.click();   return   false;}");

在一个页面上存在多个按钮,有的时候希望按回车直接实现点击某按钮的效果,解决方法如下: 
<script language="javascript">
 
function
 document.onkeydown() 

var e=
event.srcElement; 
if(event.keyCode==13


document.getElementById(
"需要点击的那个按钮的id"
).click(); 
return false

}
 
}
 
</script>
 
如果页面上有多行文本框,在多行文本框内回车仅仅想实现换行而不是提交表单这么修改 
if(e!=document.getElementById("多行文本框的id")&&event.keyCode== 13

一、在页面任意的地方按回车键都不引发响应
    如果整个页面没有需要设置回车提交的,希望在页面任意的地方按回车键都不引发响应,可以将全页面的回车通通转为 Tab,方法是在文件头部加上如下代码:

<script language="javascript" event="onkeydown" for="document">

       
if(event.keyCode==13
)
              event.keyCode
=9
;
</script>

---------------------------------------------------------------------------------------------------- 

按扭上的事件我会写:  
  bt_Click+=new   EventHandler(bt_OnClick);  
  private   void   bt_OnClick(Object   sender,EventArgs   e){  
    //****  
  }  
   
   
  可是TextBox对象的事件怎么写?  
  private   void   tb_OnKeyDown(Object   sender,KeyEventArgs   e){  
    if(e.KeyCode.ToString()=="Enter"){  
      //***  
      //怎么写?难道要把代码复制一次才可以吗?  
      //***  
    }  
  }

--------------------------------------------------------------------------------------------------------------
回车光标定位到下一个文本框:
TextBox.Attributes.Add("onkeydown","if(event.keyCode==13)event.keyCode=9;");
onkeydown= "if(event.keyCode==13)event.keyCode=9 "
13:回车键
9:Tab键

Page_Load中设置:
textbox.Attribute[ "onkeyup "]= "javascript:if   (event.keycode==13)   xxx.focus(); "

例:
<script  language=javascript>  
  function   document_onkeydown()   {  
        if   (event.keyCode==13)   //如果回车  
        {  
        event.returnValue=false  
        }  
         
  }  
    </script>   
    
  <form   id="Form1"   method="post"   runat="server"     onkeydown="return   document_onkeydown()">  
  取消   form的回车提交  

------------------------------------------------------------------------------------------
如果你的textbox是放在某个form里面的话,  
  那么把这个form的keypreview设成true,  
  然后重载form的keypress,keydown,keyup三个响应函数,  
  在这三个响应函数里面检查是不是enter键,  
  如果是,就把事件注销,注销的方法是设置event的isHandled属性。


---------------------------------------------------------------------------------------------------------------------------------------

屏蔽Button按钮对Enter回车键的响应 及实现Enter->Tab效果

案例如下:
一般情况下
当一个页面有TextBox以及Button的时候
当光标停留在TextBox上 此时按Enter键 回车
就会发现光标将焦点停留在Button上
并且触发了Button的按钮事件

本例实现如下效果
0.一个包含[姓名TextBox1]和[备注TextBox2]以及[确定Button按钮]的页面
1.屏蔽按钮对回车键的响应 而只响应鼠标的点击
2.以及实现Enter键->Tab键的转换
  即TextBox1非空时 按回车键 光标转到TextBox2
  当TextBox2非空时 按回车键 光标转到Button
  当光标停留在Button上时 按回车键 光标转到TextBox1
---------------------------------------
相关代码示例如下:

 1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
 2<html>
 3<head id="Head1" runat="server">
 4    <title>屏蔽Button按钮对Enter键的响应</title>
 5    <script language="javascript" type="text/javascript">
 6       
 7        //TextBox1的 onkeydown事件
 8        //若TextBox1非空 则光标停留在TextBox2
 9        function TextBox1onKeyDown()
10        {
11            if(event.keyCode==13)
12            {
13                if(document.all.TextBox1.value=="")
14                {
15                    document.all.TextBox1.focus();
16                    event.keyCode = 0;
17                    event.returnValue = false;                    
18                }
19                else
20                {
21//                  event.keyCode=9;//Enter键->Tab键
22                    document.all.TextBox2.focus();
23                    event.keyCode = 0;
24                    event.returnValue = false;   
25                }
26            }
27        }
28        
29        //TextBox2的 onkeydown事件
30        //若TextBox2非空 则光标停留在Button1
31        function TextBox2onKeyDown()
32        {            
33            if(event.keyCode==13)
34            {
35                if(document.all.TextBox2.value=="")
36                {
37                    document.all.TextBox2.focus();
38                    event.keyCode = 0;
39                    event.returnValue = false;                    
40                }
41                else
42                {
43//                  event.keyCode=9;//Enter键->Tab键
44                    document.all.Button1.focus();
45                    event.keyCode = 0;
46                    event.returnValue = false;   
47                }
48            }
49        }
50        
51        //Button1的 onkeydown事件
52        //如果是回车键
53        //则光标停留在TextBox1
54        //不触发按钮事件
55        function Button1onKeyDown()
56        {
57            if(event.keyCode==13)
58            {
59                document.all.TextBox1.focus();
60                event.keyCode = 0;
61                event.returnValue = false;                    
62            }
63        }      
64
65        //Button1的 onClick事件
66        function btnOnClick()
67        {
68            alert(event.keyCode);
69            alert('onclick');
70        }
71        
72    </script>
73</head>
74<body>
75    <form id="form1" runat="server">
76        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
77        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
78        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"  />
79    </form>
80</body>
81</html>


后台代码:
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.TextBox1.Attributes.Add("onkeydown", "TextBox1onKeyDown();");
            this.TextBox2.Attributes.Add("onkeydown", "TextBox2onKeyDown();");
            this.Button1.Attributes.Add("onkeydown", "Button1onKeyDown();");
            this.Button1.Attributes.Add("onclick", "btnOnClick();");
            this.TextBox1.Focus();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("onclickServer");
    }
}


----------------------------------------------------------------------------------------------------------------------------------------

屏蔽回车自动提交

 

function pageLoad(sender,eventArgs)
    {
        document.onkeypress
=function(){
            
if(event.keyCode==13)
                
return false;
        }
    }

 

 

如果没有加载MicrosoftAjax框架,请添加document的onload事件。欢迎提出疑问,感谢!

 

上面的也禁止了文本区域的回车,最好用下面的方法

 

document.forms[0].onsubmit=function(){
    
return false;
}

然后利用__doPostBack()提交

posted on 2010-12-27 00:22  ringwang  阅读(893)  评论(0编辑  收藏  举报