2013-03-03 3 views
0

jQuery ajax 호출 후 양식 제출을 재개/중지하려면 어떻게해야합니까? 나는 MVC 응용 프로그램을 가지고 있는데, 나는 json에 의해 동작을 호출하고, 결과가 false가되었을 때 양식 제출을 멈추고, 결과가 나온다면 다시 시작하려고한다.

JQuery와 :

$("#formElem").submit(function (e) { 
     e.preventDefault(); 
     $.ajax({ 
      url: '@Url.Action("Check", "TimeRanges")', 
      type: "GET", 
      data: {startRange: $('#SelectedStartTimeRange').val() , endRange: $('#SelectedEndTimeRange').val()}, 
      aync: false, 
      dataType: 'json', 
      success: function (data) { 
       if(data == false) { 
        $("#rangeexist").html('Error'); 
        return false; 
       } else { 
        return true; 
       } 
      } 
     }); 
    }); 

액션

public JsonResult Check(string startRange, string endRange) 
{ 
    var result = false; 
    if (!String.IsNullOrEmpty(startRange) && !String.IsNullOrEmpty(endRange)) 
    { 
     TimeSpan spanStart; 
     TimeSpan.TryParse(startRange, out spanStart); 

     TimeSpan spanEnd; 
     TimeSpan.TryParse(endRange, out spanEnd); 

     var timeRangExisted = _repo.All().Where(x => x.TimeFrom.Equals(spanStart) && x.TimeTo.Equals(spanEnd)).ToList(); 
     if (!timeRangExisted.Any()) 
      result = true; 
    } 

    return Json(result, JsonRequestBehavior.AllowGet); 
} 
+1

결과가 참 또는 거짓 경우, 양식이 이미 제출되어있다. 성공 : 양식이 제출되었고 결과가 반송되었음을 의미합니다. –

답변

0
var ajaxSent = false; 
$("#formElem").submit(function (e) { 
    if (!ajaxSent) 
    e.preventDefault(); 
    $.ajax({ 
     url: '@Url.Action("Check", "TimeRanges")', 
     type: "GET", 
     data: {startRange: $('#SelectedStartTimeRange').val() , endRange: $('#SelectedEndTimeRange').val()}, 
     aync: false, 
     dataType: 'json', 
     success: function (data) { 
      if(data == false) { 
       $("#rangeexist").html('Error'); 
       ajaxSent = true; 
       $("#formElem").submit(); // something like that .... 
       return false; 
      } else { 
       return true; 
      } 
     } 
    }); 
}); 
+0

그게 전부입니다. 고맙습니다 :) –