Asp.Net回车键触发Button的OnClick事件解决方案

在aspx页面有textbox文本框,还有三个button按钮。启用textbox的TextChanged事件和button的click事件。

问题:

现在在textbox文本框输入完数据按“回车”后,会触发TextChanged事件,但同时还会触发该页面第一个button按钮的Click事件。

解决方法一:

当在文本框中敲回车的时候,表单提交。因为在.net中一个Page只有一个form表单。所以也就有一个Sumbit事件。

当UseSubmitBehavior的属性是True的时候,表单的提交就会触发此事件。

先后顺序是先触发点击事件,然后触发 UseSubmitBehavior为True的button的click时间。

当然如果有多个button就会默认的触发第一个button事件。

为了解决该问题将UseSubmitBehavior改为false即可。(多个button时,UseSubmitBehavior全改为false。)

解决方法二:

(当你要用button的OnClientClick弹出确认窗口的时候,如果UseSubmitBehavior为false,不论你选择什么都不会执行服务器的button的OnClick代码,这时候就需要用解决方法二)

解决方法来自孟子E章:

private   void   Page_Load(object   sender,   System.EventArgs   e)   
{   
  TextBox1.Attributes.Add("onkeydown","if(event.keyCode==13)   {this.blur();return   false}");   
}   
private   void   Button1_Click(object   sender,   System.EventArgs   e)   
{   
  Response.Write("Button");   
}   
private   void   TextBox1_TextChanged(object   sender,   System.EventArgs   e)   
{Response.Write(TextBox1.Text);   
}

(确保TextBox1的AutoPostBack属性为True,实际使用中发现,只要设置为true,不需要上面的代码也可以解决问题。)

另外,可以设置 客户端ID.focus()  or  设置tabIndex 属性。

时间: 2024-12-07 08:53:22

Asp.Net回车键触发Button的OnClick事件解决方案的相关文章

asp.net js验证为空j时,不让button执行onclick事件

<script type ="text/javascript" language="javascript">           function checkInput() {                  var strMsg = "";          var userName = document.getElementById("<%=txt_Uer.ClientID%>").value; 

ASP.NET的OnClientClick(return )与OnClick事件

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行. OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行. 如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢? OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资

button的onclick事件导致的XMLHttpRequest 页面刷新

情况:在form中定义了一个<button>,点击时 进行数据的取得.bug:先在form中输入一个 fcode字段,再点<button>,控制台输出:[主线程中同步的 XMLHttpRequest 已不推荐使用,因其对终端用户的用户体验存在负面影响.]jquery说的不明所以,也不是报错,无法知道到底哪里错了.调试好久,查询百度看到帖子:https://bbs.csdn.net/topics/380081630 情况虽然不太一样,但根据他的方法,在button标签,设置oncli

【WPF】代码触发Button点击事件

先定义Button按钮并绑定事件. public void test() { Button btn = new Button(); btn.Click += Btn_Click; } private void Btn_Click(object sender, RoutedEventArgs e) { Console.WriteLine("点击了按钮!"); } 已经定义好了事件后,不点击按钮,如何靠代码动态触发按钮的点击事件? 方法一: ButtonAutomationPeer pee

转载:JS触发服务器控件的单击事件

原文地址:http://blog.csdn.net/joyhen/article/details/8485321 <script src="../Js/jquery-1.4.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("#a_doClick").cli

JS触发服务器控件的单击事件

<script src="../Js/jquery-1.4.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("#a_doClick").click(function () { $("#<%=btnTest.ClientID%>&quo

asp.net中Button按钮点击两次才执行Onclick事件的原因

今天写了一个简单的聊天室,有登录页面和聊天室,当从登录页面跳入到聊天室过后,却发现要点击两次发送按钮才能发送到显示区,然后发送按钮正常运行. 通过不断测试,发现,第一次点击并没有执行点击事件,第二次才执行的点击事件.并且也找到了问题所在.下面用一个简单的小例子来说明: 页面Server_Transfer.aspx: <asp:Button ID="Button1" runat="server" Text="Button" OnClick=&

asp.net 环境下当javascript验证不通过是禁止button按钮执行onclick事件的

把内容过程重要的一些内容段做个记录,下边资料是关于asp.net 环境下当javascript验证不通过是禁止button按钮执行onclick事件的内容. <script type ="text/javascript" language="javascript">function checkInput() { var strMsg = "";var userName = document.getElementById("&

ASP.NET的OnClientClick与OnClick事件

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行. OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行. 如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢? OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资