如何停止表单提交?

How to stop form submission?

我是 JavaScript 的新手。如果任何验证条件返回 false,我需要阻止提交表单。

例如:-

if((document.getElementById("name").value)==""){
    alert("'Name' field can not be empty");
    return false;
}

我尝试了 <form onsubmit="return validate();"><form onsubmit="event.preventDefault(); validate();">。 None 的帮助。第一个提示相同的警报消息两次。第二个连续提示所有警报消息。我想要的是,

  1. 如果有一个错误条件,我需要浏览器停止提交表单并提示相关的警告信息。
  2. 如果有多个错误条件,我需要浏览器停止表单提交,只提示一个警告信息。

有什么方法可以通过使用 JavaScript(没有 JavaScript 库)来实现吗?

抱歉,如果有任何语法错误,英语不是我的第一语言:(

您需要调用从EventListener 的回调函数中获取的作为参数的事件对象的preventDefault。像这样:

...
<head>
<script>
window.addEventListener("load",init);
function init()
  {document.getElementById("form").addEventListener("submit",function(e)
     {e.preventDefault();});}
</script>
</head>
<body>
<form id="form">
  <input type="submit">
</form>
</body>
...

您可以随意调用该参数,也可以在其他地方定义该函数。

...
<script>
window.addEventListener("load",init);
function init()
  {document.getElementById("form").addEventListener("submit",handleSubmit);}
function handleSubmit(event)
  {event.preventDefault();}
</script>
...