Ответ 1
попробуйте изменить
<input id="btnSubmit" type="submit" value="Submit" onclick="CheckingStatus();" />
к
<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" />
В представлении 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", форма все еще представлена. Как остановить отправку формы?
попробуйте изменить
<input id="btnSubmit" type="submit" value="Submit" onclick="CheckingStatus();" />
к
<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" />
Другой способ сделать это:
document.forms['MyForm'].onsubmit = CheckingStatus;
Измените свой код на:
<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" />
Примечание. Я добавил слово "return".
Я бы использовал кнопку ASP.NET, ИЛИ добавлю свойство runat = "server" к кнопке HMTL, а затем используйте свойство UseSubmitBehavior = "false", чтобы отключить отправку/отправку формы. Затем вы можете вызвать form.Submit(); или аналогичный в вашем JavaScript.