2012-04-05 25 views
7

Tôi đang sử dụng Ajax.Begin Form trong MVC 3 + Razor ứng dụng của tôiAjax.BeginForm với OnBegin ngăn chặn hành động được gọi là

using (Ajax.BeginForm("ActionName", "ControllerName", new AjaxOptions { OnBegin = "ValidateDateFunction('" + @abc.xyz + "')", HttpMethod = "POST", UpdateTargetId = "savebutton" })) 
    { 
     <input type="submit" value="Save" /> 
    } 

Dưới đây là cách thức onBegin của tôi trông như thế nào. Tôi đang chuyển một giá trị cho phương pháp này, tôi có thể nhận được một cảnh báo thích hợp.

function ValidateDateFunction(id) { 
     alert(id); 
     if(some-ConditionUsing-formId) 
     { 
      return false; 
     } 

     return true;   
    } 

Bây giờ sử dụng điều này tôi muốn rằng nếu điều kiện của tôi không hoạt động thì không nên gọi. Nhưng ở đây trong trường hợp của tôi trong cả hai điều kiện hành động của tôi được gọi.

Vui lòng trợ giúp về điều này.

Dưới đây là phương thức validate thực tế của tôi

 function ValidateDateFunction(fId) { 

     var first = document.getElementById("startDate" + fId); 
     var second = document.getElementById("endDate" + fId); 

     if (first.value == "" && second.value != "") { 
      alert("Please select both dates"); 
      return false; 
     } 
     else if (first.value != "" && second.value == "") { 
      alert("Please select both dates"); 
      return false; 
     } 

     var startDateVal = new Date(first.value); 
     var endDateVal = new Date(second.value); 

     if (startDateVal.getTime() > endDateVal.getTime()) { 
      alert("Error ! The start date is after the end date!"); 
      return false; 
     } 
     alert('should not reach here'); 
     return true; 

    } 
+0

tìm thấy nó! chỉ phải tinh chỉnh sở hữu OnBegin tôi để OnBegin = "return ValidateDateFunction ('" + @ abc.xyz + "')" liên kết Tôi gọi http://stackoverflow.com/questions/8056968/asp -net-mvc-3-0-ajax-actionlink-onbeign-function-true-the-execute-the-action – Yasser

+0

bạn muốn truyền đạt điều gì? – HaBo

+0

đã tìm thấy nó http://stackoverflow.com/questions/10024135/ajax-beginform-with-onbegin-prevent-action-to-be-called/10039566#10039566 – Yasser

Trả lời

Các vấn đề liên quan