Frage

In Anbetracht der folgenden HTML-Fragment:

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

Ich brauche / zu entfernen, um die Handler für das onsubmit Ereignis löschen und meine eigenen registrieren jQuery oder anderen Geschmack von JavaScript Nutzung verwenden.

War es hilfreich?

Lösung

Um dies zu tun, ohne Bibliotheken:

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

Andere Tipps

Mit jQuery

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

Und dann gehen Sie Ihren eigenen hinzuzufügen.

Versuchen Sie dieses, das funktioniert für mich:

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

Siehe dieses mehr Details.

Für jQuery, wenn Sie Ereignishandler mit .live verbindlich sind, können Sie .die verwenden, um alle Instanzen zu lösen, die mit .live gebunden waren.

Für jQuery, off() entfernt alle Event-Handler hinzugefügt von jQuery davon.

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

Beim .off () ohne Argumente werden alle Handler auf die Elemente angebracht.

Wenn Sie möchten, entfernen Sie alle event-handlers auf der element and its child-nodes und behalten nur die HTML structure, können wir mit jQuery's arbeiten clone () :

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

Dies wird effektiv lassen keinen event-handlers auf dem element oder seine child-nodes.

Viel Glück ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top