OnFailure/ OnSuccess не вызывается при отправке формы ajax
Я пытаюсь отправить форму AJAX, и мне нужно, чтобы отображалось подтверждающее сообщение о неудаче и / или неудаче.
Но эти две функции никогда не вызывались.
@using (Ajax.BeginForm("Transfer", "Location", null, new AjaxOptions
{
UpdateTargetId = "update-message",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
OnSuccess = "updateSuccess",
OnFailure = "updateFailure"
}, new { @id = "transferForm" }))
{
// html here
}
<div id="update-message"></div>
<div id="commonMessage"></div>
это скрипт:
<script>
function updateSuccess() {
if ($("#update-message").html() == "True") {
$('#commonMessage').html("The ownership has been transfered.");
$('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
}
else {
$("#update-message").show();
}
}
function updateFailure() {
if ($("#update-message").html() == "False") {
$('#commonMessage').html("The ownership has NOT been transfered.Error occured.");
$('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
}
else {
}
}
</script>
После отправки формы я вижу, что она возвращает True/False и отображается в div "update-message". Но подтверждение никогда не появляется. даже если я использую "alert" внутри onFailure/onSuccess, предупреждение не отображается.
Любая помощь, ребята?
РЕДАКТИРОВАТЬ: возвращенное сообщение контроллера отображается в div. Но не появляется подтверждающее сообщение.
1 ответ
Не могли бы вы попробовать это:
function updateSuccess() {
$('#commonMessage').html("The ownership has been transfered.");
$('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
}
function updateFailure() {
$('#commonMessage').html("The ownership has NOT been transfered.Error occured.");
$('#commonMessage').delay(400).slideDown(400).delay(4000).slideUp(400);
}
Так как div
обновляется после операций ajax.
ПРИМЕЧАНИЕ. Разве "OnSuccess" не означает "действие возвращает истину"? Кроме того, "OnFailure" = "action return false"? Почему вы используете "если заявление"?