Actully meine Anwendung hat Hunderte von Seiten. Jetzt muss ich ein Ereignis 'disablePage' bei onSubmit des Formulars anhängen. Ich mag nicht für jeden und jede Seite gehen und schreiben:Wie wird ein Ereignis an onSubmit-Ereignis des Formulars angehängt, indem früher angefügte Methoden verkettet werden?
<form name="frmname" onSubmit="disablePage();">
, was ich jetzt tue, ist: -
Auszug aus common.js Datei; [Auf allen Seiten eingeschlossen]
/* we have to attach 'attachFormSubmit' method on onLoad 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';
}
bis zu diesem Punkt alles ist in Ordnung, disablePage() auf die Formen aller Seite angebracht ist.
Aber das Problem ist, wenn jemand bereits eine Methode an onSubmit oder onLoad angehängt hat, dann sollte das auch ausgeführt werden. Und ich denke, dass Code nach meinem Code niemals ausgeführt wird. Was soll ich tun, um ihre Methode zu verketten?
No JQuery please
also bedeutet das, ich muss mir keine Sorgen über die Verkettung der Methoden machen? –
Ich denke schon. Hast du es versucht? Sie könnten einfach zwei Ereignisse anhängen und sehen, ob beide wirksam werden. – ujh