2017-05-07 60 views
1

我無法停止表單內部提交的傳播。看起來無論我在網頁中點擊什麼地方,都會觸發一個事件 - 如何固定它,只需點擊提交按鈕即可觸發?stopPropagation()在提交不起作用

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

''是不是有效的標記名稱。 – n00dl3

+0

@ n00dl3哎呀..謝謝。那麼人們是否只需要將它們添加到同一個類,如果他們想循環提交? – cafekaze

回答

1

提交不是有效的標籤,你可以找到你的提交按鈕用下面的代碼:

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

,或者更詳細:

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

添加的每個submit同一類然後被存儲在那些使用getElementsByClass()和遍歷一個數組。