从上图中可以看出,表单中有一个onsubmit事件。但是当我试图引用onsubmit时,即使它告诉我它是空的。
我提出这个问题的原因是因为我试图清除onsubmit事件:
doc.getElementById("frmMaster").onsubmit = null;
哪个不起作用。
我在这里做错了什么?
答案 0 :(得分:1)
我昨天能够解决这个问题。在使用chrome开发人员工具浏览对象层次结构后,我注意到该对象有一个" onsubmit"属性,但" onsubmit"属性已经为空。所以:
doc.getElementById("frmMaster").removeAttribute("onsubmit");
成功删除了该活动。我承认我并不完全掌握作为财产或属性的事件之间的区别,但至少它解决了这个问题。
答案 1 :(得分:0)
我相信要取消注册您必须使用的事件removeEventListener('event', boundFunction)
。您拥有的代码产生的问题是WebForm_OnSubmit可能无法在您可以访问的位置定义。您需要做的是将该函数放入可以从控制台访问的上下文中(或者您最终想要调用此代码的位置)。所以你基本上可以这样做:
/*
somewhere in your server code, or wherever this WebForm_OnSubmit is defined
var handleToWebForm_OnSubmit = WebForm_OnSubmit; //must be global scope
// you will need to get a reference in javascript to this function
// and bind it so that you can willingly unbind it
*/
doc.getElementById("frmMaster").removeEventListener('submit', handleToWebForm_OnSubmit)