使用return false时,javascript确认(取消)是否仍然提交表单?

时间:2014-10-15 23:34:38

标签: javascript html forms function

我正在使用以下代码:

        <form method='POST' action='post.php' style='margin-bottom:0px;'>
        <input type='image' name='close_x' src='imgs/button.png' onclick='confirmClose()'>
        </form>

       function confirmClose() {
            if (confirm('Are you sure you wish to close?')) {
                return true;
            } else {
                return false;
            }
        }

但是,当您在确认框中单击取消时,它仍然会提交表单。

当然,返回false会阻止这种情况发生吗?

知道为什么吗?

感谢。

1 个答案:

答案 0 :(得分:1)

不要使用内联事件处理程序。

document.getElementsByName('close_x')[0].onclick = function confirmClose(e) {
  if (!confirm('Are you sure you wish to close?'))
    e.preventDefault();
};
#myform {
  margin-bottom: 0px;
}
<form id="myform" method='POST' action='post.php'>
  <input type='image' name='close_x' src='imgs/button.png'>
</form>