event.preventDefault() 在 Chrome 上对我有用,但在 Firefox 上不行,为什么?

event.preventDefault() works for me on Chrome but not Firefox, why?

在 Chrome 中,如果单击 window.confirm 中的取消按钮,则不会触发关闭日操作(由 go 后端提供支持)。但是,在 Firefox 中,即使单击取消也会触发该事件。两种浏览器都支持 event.preventDefault 所以我不明白为什么它在 Chrome 而不是 Firefox。

我的Javascript:

document.getElementById("closeDay").addEventListener("click", createAlert);
    function createAlert(){
            x = window.confirm("Are you sure?");
            if(x === false){
                    event.preventDefault()
            }
    }
    

我的Html:

<form method="POST" action="/closeDay" id="closeDay">
    <input type="submit" value="Close Day" />
</form>

我试过将 id 从表单移到输入,但这没有任何区别。为了以防万一,我也将我的 js 脚本移到了文件的底部,尽管这也没有解决问题。

您需要将event作为函数参数传递

function createAlert(event){
  x = window.confirm("Are you sure?");
  if(x === false){
  event.preventDefault()
  }
}