在回调函数中使用addEventListener阻止提交

时间:2018-02-21 09:50:31

标签: javascript

我想阻止提交表单,我找到了这个答案 How can I listen to the form submit event in javascript?

这是代码

var checkForm = document.getElementById("check");

if(checkForm.addEventListener) {
    checkForm.addEventListener("submit", submitFunc, false);
}else if(checkForm.attachEvent) {
    checkForm.attachEvent("onsubmit", submitFunc);
}

function submitFunc() {
    document.querySelector("#check").addEventListener("submit", function(e) {
        e.preventDefault();
    });
}

这不起作用,它在提交时调用该函数但它仍然提交表单。但是,如果我将此部分移出它所使用的功能,它会停止提交表单。

document.querySelector("#check").addEventListener("submit", function(e) {
        e.preventDefault();
});

但据我所知,这部分应该进入回调函数,它似乎更多"正确"为此相关代码进入相关功能。为什么它不能在函数内部工作?我是否需要向回调函数注入一些内容才能使其起作用?

1 个答案:

答案 0 :(得分:0)

来自安迪

  

所以...你正在为#check添加一个click事件监听器,当它被点击时调用submitFunc,它会向同一个元素添加另一个click事件监听器? submitFunc应该是函数submitFunc(e){e.preventDefault(); }