2012-08-24 73 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

我編輯了我的答案。 –