Pergunta

Dado o seguinte HTML fragmento:

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

Eu preciso remover / limpar o manipulador para o evento onsubmit e registrar minha própria usando jQuery ou qualquer outro sabor do uso de JavaScript.

Foi útil?

Solução

Para fazer isso sem quaisquer bibliotecas:

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

Outras dicas

Com jQuery

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

E, em seguida, avançar para a sua própria.

Tente este, este está funcionando para mim:

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

este para obter mais detalhes.

Para jQuery, se você está ligando manipuladores de eventos com .Live, você pode usar .die para desvincular todas as instâncias que foram amarrados com .Live.

Para jQuery, off() remove todos os manipuladores de eventos adicionados pelo jQuery dele.

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

Chamando .off () sem argumentos remove todos os manipuladores anexados aos elementos.

Se você deseja remover ALL event-handlers na element and its child-nodes e manter apenas o HTML structure, podemos trabalhar com jQuery's clone () :

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

Esta vontade efetivamente não deixam event-handlers na element ou seu child-nodes.

Boa sorte ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top