Comment attacher un événement à l'événement onSubmit du formulaire avec le chaînage plus tôt attaché à des méthodes aussi bien?
Actaully ma demande est d'avoir des centaines de pages. Maintenant, je dois joindre un événement 'disablePage" sur le onSubmit du formulaire. Je ne veux pas aller à chaque page et d'écrire:
<form name="frmname" onSubmit="disablePage();">
Ce que je suis en train de faire maintenant est:-
extrait de common.js fichier; [ 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 beau, disablePage() est rattachée à la formes de la totalité de la page.
Mais le problème est que si quelqu'un avez déjà attaché toute méthode onSubmit ou onLoad alors qu'il devrait en être exécuté. Et je suppose que selon mon code que le code ne sera jamais exécutée.
Que dois-je faire à la chaîne de leur méthode de trop?
No JQuery please
OriginalL'auteur Rakesh Juyal | 2009-10-23
Vous devez vous connecter pour publier un commentaire.
Selon Quirksmode ce que vous faites devrait vraiment travailler. Il faut juste ajouter vos événements et de ne pas remplacer les anciennes. C'est pourquoi vous utilisez la méthode addEventListener/attachEvent au lieu d'affectation à un onsubmit.
Je pense que oui. Avez-vous essayé? Vous pourriez tout simplement joindre les deux événements et de voir si les deux prennent effet.
OriginalL'auteur ujh
Remarque, que si l'on a accepté la réponse est correcte (le gestionnaire d'événement est ajouté, il n'est PAS de remplacer le gestionnaire d'événement), c'est peut-être pas ce qu'attend l'utilisateur:
Votre gestionnaire d'événement peut être appelé dans n'importe quel ordre avec les autres gestionnaires d'événements. Et onsubmit les gestionnaires peuvent annuler la soumission au serveur. Donc, si vous de "désactiver" la page sur soumettre, vous pouvez laisser l'utilisateur sur une page où il ne peut rien faire du tout...
OriginalL'auteur Steffen Heil