event.preventDefault()适用于Chrome但不适用于Firefox,为什么?

时间:2017-01-18 03:59:00

标签: javascript html javascript-events prompt

在Chrome中,如果单击window.confirm中的取消按钮,则不会触发关闭日动作(由后端驱动)。但是,在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脚本移动到文件的底部,尽管这还没有解决问题。

1 个答案:

答案 0 :(得分:1)

您需要将event作为函数参数

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