2013-07-25 3 views
2

Я использую asp .net mvc 4, и у меня есть html-форму с использованием проверки ajax.asp .net validation with jquery success callback

Я использую этот код javascript для того, чтобы узнать, является ли форма неправильной. Этот код работает.

$('#form').bind('invalid-form.validate', function() { 
      alert("error"); 
      return false; 
     }); 

Но я не могу найти обратный вызов javascript для успеха?

Я пробовал:

$('#form').bind('valid-form.validate', function() { 
      alert("success"); 

     }); 

или

$('#form').validate({ 
       invalidHandler: 
       function (form, validator) { 
        alert('error'); 
       }, 
       rules: function (form, validator) { 
        alert('success '); 
       } 
      }); 

Но я никогда не получить предупреждение успеха. Спасибо за вашу помощь.

+0

Вы делаете Сообщение Ajax или регулярное? Вы хотите, чтобы всплывающее окно отображалось до или после возвращения с сервера? – McGarnagle

+0

На самом деле я не хочу использовать функцию предупреждения, теперь это просто для отладки, я хочу скрыть div, выполнив что-то вроде этого $ («myid»). Hide(). Но мне нужно знать, если это успех или нет – user2037696

ответ

1

использование Ajax.BeginForm

@using (Ajax.BeginForm("Delete",new{id = Model.id}, new AjaxOptions 
    { 
    OnSuccess = "OnSuccess", 
    OnFailure = "OnFailure", 
    HttpMethod="Post" 
})) 

затем измените OnSuccess/OnFailure на имя вашей функции Java Script

0

Bind к form.submit вместо как это -

$('#form').on('submit', function (e) { 
    e.preventDefault(); 
     if ($(this).valid()) { // This checks if the form is valid 
      alert("success"); // Or instead of success you can hide the form here 
      $.ajax({ 
       url: this.action, 
       type: this.method, 
       data: $(this).serialize(), 
       success: function (result) { 
        // Goes in here after your MVC controller action is done 
       }, 
       error: function (result) { 
        // Goes in here if your mvc controller action returns an error     
       } 
      }); 
     }; 
});