2014-10-18 5 views
0

mvc 면도기에 아약스 게시물을 사용하여 양식을 게시하려고합니다. 그리고 데이터베이스에 게시하기 전에 양식의 유효성을 검사하려고합니다. 그러나 양식이 유효하더라도 게시 할 양식을 차단하고 있습니다. 양식을 시작

$(function() { 
    $('#MyForm').submit(function() { 
     if ($('#MyForm').valid()) { 
     //$("#divLoading").show(); 
     $.ajax({ 
      type: "POST", 
      url: '@Url.Action("Something", "Something")', 
      data: $('#MyForm').serialize(), 
      dataType: 'json', 
      error: function (xhr) { 
       $("#Message").text(xhr.statusText); 
       $('#divLoading').hide('fast'); 
      }, 
      success: function (result) { 
       //$('#divLoading').hide('fast'); 
       if (result.IsSuccess) { 
        $("#Message").html(result.Message); 
        $('#MyForm')[0].reset(); 
       } 
      } 
     }); 
     } 
    }); 
}); 

여기

+1

왜 ProviderForm 및 MyForm을 가지고 있습니까? – progysm

+0

죄송합니다. 둘 다 동일합니다. –

+0

'if' 문 앞에'$ (this) .validate();'호출을 시도하십시오. –

답변

0

귀하의 문제가 여전히 폼 기본 동작을 사용하기 때문에 페이지가 아약스 응답을 얻기 전에 다시 것입니다 사전에

@using (Ajax.BeginForm("Something", "Something", new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "POST" }, new { @id = "MyForm" })) 
{ 
} 

감사가 포함되어 있습니다. 이 시도 :

$('#MyForm').submit(function (event) { 
event.preventDefault(); 

if ($('#MyForm').valid()) { 
    //$("#divLoading").show(); 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("Something", "Something")', 
     data: $('#MyForm').serialize(), 
     dataType: 'json', 
     error: function (xhr) { 
      $("#Message").text(xhr.statusText); 
      $('#divLoading').hide('fast'); 
     }, 
     success: function (result) { 
      //$('#divLoading').hide('fast'); 
      if (result.IsSuccess) { 
       $("#Message").html(result.Message); 
       $('#MyForm')[0].reset(); 
      } 
     } 
    }); 
} 

를이 차이입니다 :

$('#MyForm').submit(function (event) { 
    event.preventDefault();