2009-05-20 17 views
25

¿Cómo puedo adjuntar un evento de clic a un botón y evitar la devolución de datos?jQuery que impide la devolución de datos en el botón, haga clic en

El código que tengo no parece estar funcionando.

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

ver esto: [¿Cómo eliminar un controlador de eventos] (http://jquery.open2space.com/node/23) Y esto: [¿la mejor manera de eliminar un controlador de eventos en jquery?] (http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in- jquery) –

+0

Buena pregunta pero falta un ejemplo comparativo. Dado que los desarrolladores web de hoy usan un enfoque combinado, siempre es bueno proporcionar un ejemplo del control HTML, no solo asumir el tipo de selector. – GoldBishop

Respuesta

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

Me di cuenta de que esto tampoco funciona debido a la representación de asp.net. Mi botón se procesa con un "javascript: __ doPostBack (". ¿Alguna idea sobre cómo deshacerse de esto? –

+0

Cambie el '$ ('# btnNext')' a esto: '$ ('# <% = btnNext.ClientID% > ') '. De forma predeterminada, ASP.Net usa su propio nombre de identificación ... por lo que al usar la propiedad ClientID, puede obtener el nombre real como referencia. –

+0

Agregando a la respuesta del Usuario434917: Encosia tiene una buena reseña sobre esto [aquí ] (http://encosia.com/button-click-handlers-ajax-premature-submission/) - (Manejadores de clic de botón, AJAX y envío prematuro) – amorin

16

Yo estaba trabajando con un botón y descubrió que si se quiere evitar que el botón de hacer un auto-devolución de datos, es necesario especificar el tipo como "botón". Por ejemplo:

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

--este generarán un auto-devolución de datos (probado en IE)

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

--este voluntad no

Esperamos que esto ayude a alguien.

+1

Elegante, simple y no requiere js en absoluto. Esto no solo solucionó mi problema, sino que así que de una manera que no infló mi código base. ¡Gracias! –

+0

El problema de @JoeWerner es que algunos desarrolladores usan los controles ASP en lugar de HTML sin formato. Algunos desarrolladores son flojos, lo sé. De cualquier manera, esto solo funciona para aquellos que usan HTML sin formato para construir una página web. – GoldBishop

0

etiqueta de botón interior, use type = "Botón" para evitar que se devuelva el mensaje.

2

En Asp.net para evitar la devolución de datos en la página de clic de botón utilización preventDefault función()

<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> 
+0

Este es probablemente el mejor enfoque práctico, ya que se relaciona directamente con el dilema .Net. En algunos escenarios, también debe manejar la asignación de ID de control dinámico, pendiente en el entorno. – GoldBishop

Cuestiones relacionadas