2009-05-20 104 views
25

如何将点击事件附加到按钮并防止回发?jQuery防止回发点击按钮

我的代码似乎没有工作。

$('#btnNext').click(function() { 
     return false; 
    }); 
+0

看到这个:如何删除事件处理(http://jquery.open2space.com/node/23)而这:[jquery中删除事件处理程序的最佳方式?](http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in- jquery) – 2009-05-20 13:37:52

+0

好问题,但缺乏比较例子。由于今天的Web开发人员使用混合方法,所以提供HTML控件的例子总是不错的,而不仅仅假设选择器的类型。 – GoldBishop 2017-02-06 18:29:07

回答

54
$('#btnNext').click(function(e) { 
     e.preventDefault(); 
    }); 
+2

我注意到,这不工作,或由于asp.net呈现。我的按钮被渲染为“javascript:__ doPostBack(”。任何关于如何摆脱它的想法? – 2009-05-20 14:20:55

+0

将$('#btnNext')`改为:$('#<%= btnNext.ClientID% >')`。默认情况下,ASP.Net使用自己的ID命名...所以通过使用ClientID属性,你可以得到实际的名称来引用。 – 2014-05-19 14:32:13

16

我用按钮的工作,并发现,如果你想避免做一个自动回发的按钮,你需要指定类型为“按钮”。例如:

<button id="saveButton">Save</button> 

- 这将产生一个自动回发(在IE测试)

<button type="button" id="saveButton">Save</button> 

- 这不会

希望这可以帮助别人。

0

里面的按钮标签,使用type =“按钮”,以防止回发。

2

在Asp.net,以防止在单击按钮使用的preventDefault网页提交()函数

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
     <title>WebForm1</title> 
     <script src="js/jquery-2.2.2.js" type="text/javascript"></script> 
     <script> 
      $(document).ready(function() { 
       $("#btnshow").click(function (e) { 
        e.preventDefault(); 
        $("#Label1").show(); 
       }); 
       $("#btnhide").click(function (e) { 
        e.preventDefault(); 
        $("#Label1").hide(); 
       }) 
      }); 
     </script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
     <div> 

     </div> 
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
      <asp:Button ID="btnshow" runat="server" Text="Show" /> 
      <asp:Button ID="btnhide" runat="server" Text="Hide" /> 
     </form> 


    </body> 
    </html>