سؤال

نظرا HTML التالية جزء:

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

إذا كنت تحتاج إلى إزالة/مسح معالج onsubmit الحدث وتسجيل بلدي باستخدام مسج أو أي نكهة أخرى من استخدام جافا سكريبت.

هل كانت مفيدة؟

المحلول

لقيام بذلك دون أي المكتبات:

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

نصائح أخرى

ومع مسج

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

وبعد ذلك إلى إضافة الخاصة بك.

وجرب هذا، وهذا هو العمل بالنسبة لي:

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

هذا للحصول على المزيد التفاصيل.

لمسج، إذا كنت ملزمة معالجات الأحداث مع .live، يمكنك استخدام تشديد يموت لتوثيق جميع الحالات التي تم ملزمة مع .live.

لمسج، off() يزيل جميع معالجات الأحداث التي أضافها مسج منه.

$('#aspnetForm').off();
<اقتباس فقرة>   

ودعوة .off () بدون وسائط يزيل جميع معالجات تعلق على العناصر.

إذا كنت ترغب في إزالة كل event-handlers على element and its child-nodes و الاحتفاظ فقط HTML structure, يمكننا العمل مع jQuery's استنساخ():

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

هذا سوف بشكل فعال لا تترك event-handlers على element أو child-nodes.

حظا سعيدا...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top