0

我正在尝试提交一个 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 并显示在“update-message”div 中。但确认从未出现。即使我在 onFailure/onSuccess 中使用“警报”,警报也不会出现。

有帮助吗??

编辑:控制器返回的消息显示在 div 中。但是没有确认信息出现。 在此处输入图像描述

4

1 回答 1

0

你能试试这个:

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”?为什么要使用“if 语句”?

于 2012-08-24T16:38:23.970 回答