给出以下HTML片段:

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

我需要删除/清除onsubmit事件的处理程序,并使用jQuery或任何其他JavaScript使用方式注册我自己的处理程序。

有帮助吗?

解决方案

要在没有任何库的情况下执行此操作:

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

其他提示

使用jQuery

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

然后继续添加自己的。

试试这个,这对我有用:

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

有关更多信息,请参见的信息。

对于jQuery,如果使用.live绑定事件处理程序,则可以使用.die取消绑定与.live绑定的所有实例。

对于jQuery, off() 删除所有活动由jQuery添加的处理程序。

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

不带参数调用.off()会删除附加到元素的所有处理程序。

如果您要删除元素上的 ALL 事件处理程序及其子节点保留只有 HTML结构,我们可以使用 jQuery的 克隆()

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

这将有效地元素或其子节点上不留事件处理程序

祝你好运......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top