我的应用程序实际上有数百页.现在我必须在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的原因.