2012-03-10 5 views
0

Я использую asp.net mvc 3 с ненавязчивой проверкой jquery. У меня есть форма, которая предназначена для модели, которая содержит различные обязательные атрибуты и другие аннотации данных.Jquery validate block form submit

Я подаю эту форму с помощью JQuery, как так

<script type="text/javascript"> $(document).ready(function() { 
    $('form').submit(function(e) { 
     e.preventDefault();   

     var user = { 
      UserName: $('#@(Html.IdFor(m => m.UserName))').val(), 
      Password: $('#@(Html.IdFor(m => m.Password))').val(), 
      RememberMe: $('#@(Html.IdFor(m => m.RememberMe))').val(), 
      returnUrl: '@Request.Url.PathAndQuery' 
     }; 

     $('#loginform').hide(); 
     $('#loading').show(); 

     $.ajax({ 
      url: '@Url.Action("LogOn", "Account")', 
      type: 'POST', 
      data: JSON.stringify(user), 
      dataType: 'json', 
      processData: false, 
      contentType: 'application/json;charset=utf-8', 
      success: function(data) { 
       if (data.returnUrl) { 
        window.location.href = data.returnUrl; 
       } else { 
        $("#loginform").replaceWith(data); 
       } 

      }, 
      error: function(jqXhr, textStatus, errorThrown) { 
       alert("There was an error logging in :'" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); 
      }, 
      complete: function() { 
       $('#loginform').show(); 
       $('#loading').hide(); 
      } 
     }); 
    }); 
}); </script> 

Проблема в том, что форма утверждена (и ошибки будут отображаться необходимые поля и т.д.), а затем форма будет отправлена, который может привести к ошибкам ,

Как изменить jquery так, чтобы он проверял форму, перед тем как сделать это отправить?

ответ

0

Вызывает вызов if ($ ('form'). Valid()), которые возвращают true/false, если форма действительна