在'取消'确认()仍然允许表单提交

时间:2018-05-03 13:47:04

标签: javascript confirm

function next() {
  return confirm('Are you sure you want to Foo');
}
<form method="GET" action="/foo" onsubmit="next()">
  <input type="hidden" name="delete" value={{$foo} />
  <button class="btn btn-warning" type="submit"> Foo</button>
</form>

我试图让用户选择验证他们是否要提交表单。目前上面的代码显示了弹出确认框,但无论单击“确定”还是“取消”,表单都会提交。

我对'confirm()'的理解是,如果点击'取消',表单提交将会停止。

Confirm()如何运作,以及如何最好地实施?

1 个答案:

答案 0 :(得分:3)

您需要在next()之前加上HTML中的return

&#13;
&#13;
function next() {
  return confirm('Are you sure you want to Foo');
}
&#13;
<form method="GET" action="/foo" onsubmit="return next()">
  <input type="hidden" name="delete" value={{$foo} />
  <button class="btn btn-warning" type="submit"> Foo</button>
</form>
&#13;
&#13;
&#13;

要停止提交,onsubmit处理程序需要返回您错过的false。当模态被解除时,confirm()返回false