如何停止提交表单?

How to stop form being submitted?

我正在使用 asp.net 网络表单页面。我有一些 javascript 检查一些动态生成的字段是否有值,如果没有则显示一条消息。问题是我还没有找到一种方法来阻止此检查失败时提交表单。

<form id="myform" name="myform" runat="server" onsubmit="finalCheck();">

我试过按钮和输入类型:

<button type="submit">submit</button>

<input type="submit" value="submit"/>

finalCheck() 方法始终执行并 return 错误。但无论如何,表格都会出现。

我还需要做些什么来阻止提交表单吗?

事件处理程序中的代码必须return它调用的函数的值:

onsubmit="return finalCheck();"

事件处理函数需要 return false。该函数是 onsubmit,而不是 finalCheck

onsubmit="return finalCheck();"

如果您使用的是现代代码,则可以改为对事件对象调用 preventDefault

<script>
document.getElementById('myform').addEventListener('submit', finalCheck);

function finalCheck(event) {
    var myForm = this;
    // do stuff
    event.preventDefault();
}
</script>

这样写你的html:

<form id="myform" name="myform" runat="server" onsubmit="finalCheck(event);">

然后在你的 finalCheck(event) 中写下这个,在第一行作为良好实践:

event.preventDefault();

这将停止提交,您可以在 preventDefault 函数之后添加更多代码来处理表单数据