Pregunta

Dado el siguiente fragmento HTML:

<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">

Necesito eliminar / borrar el controlador para el evento de envío y registrar el mío usando jQuery o cualquier otro tipo de uso de JavaScript.

¿Fue útil?

Solución

Para hacer esto sin ninguna biblioteca:

document.getElementById("aspnetForm").onsubmit = null;

Otros consejos

Con jQuery

$('#aspnetForm').unbind('submit');

Y luego proceda a agregar el suyo.

Prueba esto, esto funciona para mí:

$('#aspnetForm').removeAttr('onsubmit').submit(function() {   
    alert("My new submit function justexecuted!"); 
});

Ver esto para más detalles.

Para jQuery, si está vinculando controladores de eventos con .live, puede usar .die para desvincular todas las instancias que estaban vinculadas con .live.

Para jQuery, off () elimina todos los eventos controladores añadidos por jQuery a partir de él.

$('#aspnetForm').off();
  

Llamar a .off () sin argumentos elimina todos los controladores adjuntos a los elementos.

Si desea eliminar TODOS controladores de eventos en el elemento y sus nodos secundarios y conservar solo la estructura HTML , podemos trabajar con el jQuery's clon () :

var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);

Esto efectivamente no dejará manejadores de eventos en el elemento o sus nodos secundarios .

Buena suerte ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top