Domanda

Dato il seguente frammento HTML:

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

Devo rimuovere / cancellare il gestore per l'evento onsubmit e registrarne uno mio usando jQuery o qualsiasi altro tipo di utilizzo di JavaScript.

È stato utile?

Soluzione

Per fare ciò senza alcuna libreria:

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

Altri suggerimenti

Con jQuery

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

E poi procedi ad aggiungere il tuo.

Prova questo, questo funziona per me:

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

Vedi questo per ulteriori informazioni i dettagli.

Per jQuery, se si associano i gestori di eventi con .live, è possibile utilizzare .die per separare tutte le istanze associate a .live.

Per jQuery, off () rimuove tutti gli eventi gestori aggiunti da jQuery da esso.

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

La chiamata a .off () senza argomenti rimuove tutti i gestori associati agli elementi.

Se vuoi rimuovere TUTTI gestori di eventi sull'elemento e sui suoi nodi figlio e conserva solo la struttura HTML , possiamo lavorare con il jQuery's clone () :

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

Questo efficacemente non lascerà gestori di eventi sull'elemento o sui suoi nodi figlio .

Buona fortuna ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top