Я могу найти много разных способов добавить подтверждение к отправке формы. Проблема в моем случае заключается либо в том, что они представляют форму в любом случае, либо просто сидят и не делают ничего. Мы ценим любые предложения. Я добавил события как к форме onsubmit, так и к кнопке onclick, без костей. ActionResult в этом случае использует HttpPostRequest для отправки данных формы. Отлично работает, просто хочу добавить диалог подтверждения, который работает.
<script>
function SubmitConfirm(){
if (confirm("Are you sure want to submit this form?"))
return true;
else
return false;
}
<form name="Form1" method="post" action="@Url.Action("PostForm", "MyController")" id="Form1">
...
<input type="submit" value="Submit Posting" onclick="SubmitConfirm()" />
Вероятно, вы захотите отобразить это диалоговое окно без перезагрузки страницы, как только ваше представление будет успешным, а не приведет их к новой странице или будет выполнять какое-то условное обновление. Таким образом, вы можете настроить свою форму как таковую...
<form name="Form1" id="Form1">
...
<input type="button" id="submit" value="Submit Posting" />
</form>
И используя jQuery, настройте ваш фактический submit таким образом...
$(document).ready(function () {
$('#submit').click(function() { submit(); });
});
function submit() {
if (SubmitConfirm())
{
var data = $('#Form1').serialize();
$.post('MyController/PostForm', data, function(result) {
if (result === 'success') {
// just using an alert here as a placeholder
alert('Your submission has been received!');
}
});
}
}
Это означает, что в вашем контроллере у вас будет следующее...
[HttpPost]
public ActionResult PostForm([form arguments])
{
var success = // deal with form results, return true if everything is ok
return new Content(success ? "success" : "failure");
}
Напомним, что вы отправляете данные своей формы, обрабатываете ее и даете пользователю отзыв о том, была ли она успешно обработана или нет, без выхода пользователя из страницы, что также открывает дверь, чтобы упростить повторное отправку данных если необходимо, и выполните проверку, снова, не покидая страницу или не дожидаясь перезагрузки страницы.
EDIT: Исправлена опечатка и модифицированная логика представления.
name
во всех ваших полях. По сути, фигурные скобки были не нужны, и просто чтобы избежать проблем сonclick
иsubmit
я заставляю вас прикрепить кнопку отправки к слушателю jQuery.