En effet, mon application a des centaines de pages. Maintenant, je dois attacher un événement 'disablePage' sur onSubmit de formulaire. Je ne veux pas aller à chaque page et écrire:Comment attacher un événement à l'événement onSubmit d'un formulaire en enchaînant des méthodes attachées plus tôt?
<form name="frmname" onSubmit="disablePage();">
Ce que je suis en train de faire est maintenant: -
extraitdu fichier common.js; [Inclus dans toutes les pages]
/* 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';
}
Jusqu'à ce point, tout est bien, disablePage() est attaché aux formes de toutes les pages.
Mais le problème est que si quelqu'un a déjà attaché une méthode à onSubmit ou à onLoad, cela devrait également être exécuté. Et je suppose que selon mon code, ce code ne sera jamais exécuté. Que dois-je faire pour chaîner leur méthode?
No JQuery please
Est-ce que cela signifie que je n'ai pas à m'inquiéter de chaîner les méthodes? –
Je le pense. As-tu essayé? Vous pouvez simplement attacher deux événements et voir si les deux prennent effet. – ujh