2012-08-24 47 views
0

我想提交一个Ajax表单,我想要的是显示一个确认消息onsuccess和/或onfailure。OnFailure/OnSuccess不会在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,并且它会显示在“更新消息”分区。但确认从来没有出现。 即使我在onFailure/onSuccess中使用'alert',警报也不会显示出来。

任何帮助家伙?

编辑: 控制器返回的消息显示在div中。但没有确认消息出现。 enter image description here

+0

你可以调用其他范围的警报吗?这次是否工作? –

+0

我的意思是'updateSuccess(result){if(result == true)}' –

回答

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”=“动作返回false”?你为什么使用“if语句”?

+0

感谢您的回复......不幸的是,这一个不起作用。事情是div(更新消息)更新,但确认消息不显示。我只看到'假'或'真'出现在div中。 – kandroid

+0

你可以写控制器动作方法吗? (“转账”) –

+0

我编辑了我的答案。 –