2017-01-02 88 views
0

有沒有一種方法可以從jQuery中使用.submit事件偵聽器獲取操作的返回值? 我有一個問題,當動作完成時,它返回一個JSON文件,我的瀏覽器導航到一個空白頁面,只顯示返回的JSON。我不希望發生這種情況,我希望能夠閱讀JSON結果並根據它決定要做什麼。在ASP.NET MVC表單上提交?

這裏是我的POC: 查看:

@using (Html.BeginForm("SubmitTest", "DMS", FormMethod.Post, htmlAttributes: new { id = "formId" })) 
     { 
      <input type="submit" value="Sumbit" /> 
     }  

控制器:

public JsonResult SubmitTest() 
     { 
      return Json("Done"); 
     } 

腳本:

$(document).ready(function() { 
     $("formId").submit(function() { 
      alert("Submitted"); 
     }); 
    }); 

回答

0

使用一個AJAX形式,而不是HTML形式,這樣你就可以檢查提交後的迴應並做任何你想做的事情使用OnSuccess處理程序編輯。

有關詳細信息請參閱本article

1

您可以添加event.preventDefaultreturn false,以防止違約事件的發生。所以它不會導航到空白頁面。

$(document).ready(function() { 
     $("formId").submit(function() { 
      alert("Submitted"); 
      return false; 
     }); 
    }); 

編輯: 如果你想獲得你需要做一個Ajax請求,並從字段表單數據的響應。您無法通過submit函數獲得響應。

$(document).ready(function() { 
     $("formId").submit(function() { 
      /// make an AJAX request 
      $.post(
$(this).attr('action'), //// action url 
$(this).serialize(), //// serialize form fields 
function(json) { 
     alert(json);/// json response 
    }, 'json'); 

      return false; /// prevent navigation 
     }); 
    }); 
+0

這不會阻止提交表單到服務器嗎? –

+0

@ Tha'erAl-Ajlouni不,它不會。它提交的表單,但防止導航 – esiprogrammer

+0

好吧,但我怎麼能讀取傳入的JSON? – user3159792