JavaScript 禁止表单提交

有时我们需要在表单真正提交之前,做一些检查工作,检查通过之后再进行提交。

<form name="myForm" onsubmit = "validateMyForm(event);">

<script type="text/javacript">
function validateMyForm(event)
{
    event.preventDefault();
    if (条件) {
        alert("验证失败!");
        return false;
    }

    return true;
}
</script>

直接 return false 和 preventDefualt() 的区别在于,return false 其实做了三件事:

  1. 调用 event.preventDefualt() 停止浏览器的默认行为(表单提交),
  2. 调用 event.stopPropagation() 阻止事件继续传播,
  3. 立即停止脚本执行,立即返回。
    在大多数我们使用 return false 的地方,其实只需要 preventDefualt()。