Frage

actaully meine Anwendung Hunderte von Seiten mit. Jetzt muss ich onSubmit der Form eines Ereignisses ‚disablePage‘ auf befestigen. Ich möchte nicht auf jeder Seite und schreiben gehen:

<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 in Ordnung ist, disablePage () auf die Formen aller Seite angebracht ist.

Aber das Problem ist, wenn jemand bereits jede Methode zu onSubmit oder onLoad dann angebracht hat, dass auch ausgeführt werden soll. Und ich denke, nach meinem Code, der Code wird nie ausgeführt werden. Was soll ich tun, um ihre Methode zur Kette auch?

No JQuery please

War es hilfreich?

Lösung

Nach Quirksmode , was Sie tun sollten tatsächlich funktionieren. Es sollte nur Ihre Ereignisse hinzufügen und nicht die alten ersetzen. Deshalb sollten Sie addEventListener / attachEvent statt Zuordnung verwenden, um onsubmit.

Andere Tipps

Beachten Sie, dass, während die akzeptierte Antwort korrekt ist (die Event-Handler hinzugefügt wird, ist es nicht die bestehenden Event-Handler ersetzen), könnte es nicht sein, was der Benutzer erwartet:

Ihr Event-Handler kann in beliebiger Reihenfolge mit den anderen Event-Handler aufgerufen werden. Und onsubmit-Handler kann die Vorlage auf dem Server gelöscht werden. Also, wenn Sie „deaktivieren“, um die Seite auf einreichen, könnten Sie den Benutzer auf einer Seite verlassen, wo er nicht tun kann nichts mehr ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top