2017-05-07 2 views
1

J'ai des problèmes avec l'arrêt de la propagation d'un submit dans un formulaire. Il semble que peu importe où je clique dans la page Web, un événement est déclenché - comment peut-il être fixé à seulement déclencher en cliquant sur le bouton soumettre?stopPropagation() sur submit ne fonctionne pas

document.addEventListener('DOMContentLoaded', bindButtons); 

function bindButtons() { 
    var buttons = document.getElementsByTagName('submit'); 

    Array.prototype.forEach.call(buttons, addEventListener('click', function(event) { 
     var req = new XMLHttpRequest(); 
     req.open("GET", url, true); 

     req.addEventListener('load', function(event) { 
      // do stuff 
     }) 

     event.preventDefault(); 
     event.stopPropagation(); 

     req.send(null);  
    })) 
} 
+1

'' est pas un nom d'étiquette valide. – n00dl3

+0

@ n00dl3 Oups ... merci. Est-ce que les gens les ajoutent simplement à la même classe s'ils veulent faire une boucle sur les soumissions? – cafekaze

Répondre

1

soumettons est pas une balise valide, vous pouvez trouver votre boutons de soumission avec le code suivant:

var submitButtons = document.getElementByTagNames('button').filter(button => button.getAttribute('type') === 'submit'); 

ou, plus bavard:

var submitButtons = document.getElementByTagNames('button').filter(function(button){ 
    return (button.getAttribute('type') === 'submit') 
); 
0

Ajouté chaque submit à la même classe, puis stocké ceux dans un tableau en utilisant getElementsByClass() et itéré dessus.