编程语言
首页 > 编程语言> > javascript – 如何通过链接早期附加的方法将事件附加到表单的onSubmit事件?

javascript – 如何通过链接早期附加的方法将事件附加到表单的onSubmit事件?

作者:互联网

我的应用程序实际上有数百页.现在我必须在onSubmit表单上附加一个事件’disablePage’.我不想去每一页写下:

<form name="frmname" onSubmit="disablePage();">

我现在正在做的是: –

来自common.js文件的摘录; [包含在所有页面中]

/* we have to attach 'attachFormSubmit' method on onl oad event, 
   otherwise forms[0] will always be null. If there is any alternative, 
   then please suggest one */
if (window.addEventListener){   
    window.addEventListener('load', attachFormSubmit, false); 
} else if (window.attachEvent){ 
    window.attachEvent('onload', attachFormSubmit );
}

function attachFormSubmit(){
    forms = document.getElementsByTagName('Form');  
    if ( forms[0] ){  // there is only one form in all pages    
        if (forms[0].addEventListener){         
            forms[0].addEventListener('submit', disablePage, false); 
        } else if (forms[0].attachEvent){           
            forms[0].attachEvent('onsubmit', disablePage);
        }
    }
}

function disablePage(){     
    document.getElementById("pageHideDivID").style.display='inline';        
}

直到这一点一切正常,disablePage()附加到所有页面的表单.

但问题是,如果有人已经将任何方法附加到onSubmit或onLoad,那么也应该执行.我想根据我的代码,代码永远不会被执行.
我该怎么做才能链接他们的方法呢?

请不要JQuery

解决方法:

根据Quirksmode,你在做什么应该实际工作.它应该只添加您的事件而不是替换旧事件.这就是你使用addEventListener / attachEvent而不是赋值给onsubmit的原因.

标签:javascript,javascript-events,chaining,method-chaining
来源: https://codeday.me/bug/20190522/1151539.html