这是我的第一篇文章。
我一直在开发 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"));
为什么会这样?
我对编程还很陌生。
来自葡萄牙的干杯!
答案 0 :(得分:0)
那是因为第二个参数是一个回调函数,而您只是在调用该函数。
这将 window.alert("submited")
的返回值作为第二个参数传递
form.addEventListener("submit", window.alert("submited"));
这将传递一个函数,该函数在调用时将触发 window.alert
form.addEventListener("submit", () => { window.alert("submited") });