在MVC视图中,我有一个表格如下。当用户点击提交按钮时,我想先检查一下。如果没问题,请提交表格。如果未通过检查,请向用户发送警报消息,然后保留在视图中。我的示例代码为:
<script type="text/javascript">
function CheckingStatus() {
//.....
if (answer == "N") {
alert("You choose No.");
return false;
}
}
</script>
<% Html.RenderPartial("MyForm"); %>
....
<input id="btnSubmit" type="submit" value="Submit" onclick="CheckingStatus();" />
<% } %>
但是在测试时,即使回答==“N”,表单仍然会被提交。如何停止提交表单?
答案 0 :(得分:27)
尝试更改
<input id="btnSubmit" type="submit" value="Submit" onclick="CheckingStatus();" />
到
<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" />
答案 1 :(得分:7)
可以采取的另一种方式:
document.forms['MyForm'].onsubmit = CheckingStatus;
答案 2 :(得分:6)
将您的代码更改为:
<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" />
注意我添加了“return”这个词。
答案 3 :(得分:0)
我会使用ASP.NET按钮,或者将runat =“server”属性添加到HMTL按钮,然后使用UseSubmitBehavior =“false”属性来禁用回发/表单提交。然后你可以调用form.Submit();或类似的JavaScript。