Javascript 提交时的stopPropagation()不起作用

Javascript 提交时的stopPropagation()不起作用,javascript,event-handling,event-listener,Javascript,Event Handling,Event Listener,我在阻止表单内提交的传播时遇到问题。看起来,无论我在网页内的何处单击,都会触发一个事件-如何将其修复为仅在单击提交按钮时触发 document.addEventListener('DOMContentLoaded', bindButtons); function bindButtons() { var buttons = document.getElementsByTagName('submit'); Array.prototype.forEach.call(buttons,

我在阻止表单内提交的传播时遇到问题。看起来,无论我在网页内的何处单击,都会触发一个事件-如何将其修复为仅在单击提交按钮时触发

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);    
    }))
}

将每个
submit
添加到同一个类中,然后使用
getElementsByClass()
将它们存储在一个数组中,并对其进行迭代

提交不是有效的标记,您可以找到包含以下代码的提交按钮:

var submitButtons = document.getElementByTagNames('button').filter(button => button.getAttribute('type') === 'submit');
或者更详细地说:

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

不是有效的标记名。@n00dl3 Oops。。谢谢如果人们想循环提交,他们是否会将它们添加到同一个类中?