未单击按钮的情况下提交的表单

时间:2021-04-24 09:00:33

标签: javascript html google-chrome google-chrome-extension

这是我的第一篇文章。

我一直在开发 Chrome 扩展程序,昨天我遇到了这个问题。我已经解决了它,我只是不太明白为什么它会这样工作。所以如果有人能解释一下,谢谢!

因此,在我的 popup.html 中,我有一个带有提交按钮的表单(在 popup.js 中,此表单中可能会动态生成一些复选框):

    <div>
        <form id="confirmation">
            <div id="ing"></div>
            <div id="meth"></div>
            <button id="check" type="submit">Submit</button>
        </form>
    </div>

在脚本中,我有这个代码,到目前为止它工作正常:

let form = document.getElementById("confirmation");
form.onsubmit = () => {window.alert("submited")};

问题是在我有这个之前,当我点击扩展图标时触发了警报,没有提交表单:

let form = document.getElementById("confirmation");
form.addEventListener("submit", window.alert("submited"));

为什么会这样?

我对编程还很陌生。

来自葡萄牙的干杯!

1 个答案:

答案 0 :(得分:0)

那是因为第二个参数是一个回调函数,而您只是在调用该函数。

这将 window.alert("submited")的返回值作为第二个参数传递

form.addEventListener("submit", window.alert("submited"));

这将传递一个函数,该函数在调用时将触发 window.alert

form.addEventListener("submit", () => { window.alert("submited") });