Formulaire ASP.Net MVC Ajax avec validation jQuery

J’ai une vue MVC avec un formulaire construit avec la méthode d’assistance Ajax.BeginForm () et j’essaie de valider la saisie de l’utilisateur avec le plugin jQuery Validation . Je reçois le plugin pour mettre en surbrillance les entrées avec des données d’entrée non valides, mais malgré l’entrée non valide, le formulaire est envoyé au serveur.

Comment puis-je arrêter cela et m’assurer que les données ne sont publiées que lorsque le formulaire est validé?

Mon code


La forme:

leave a message


La validation JavaScript:

 $(document).ready(function() { // for highlight var elements = $("input[type!='submit'], textarea, select"); elements.focus(function() { $(this).parents('p').addClass('highlight'); }); elements.blur(function() { $(this).parents('p').removeClass('highlight'); }); // for validation $("form").validate(); }); 

EDIT: Alors que je recevais des votes négatifs pour la publication des problèmes liés au suivi et de leurs solutions, voici également la méthode de validation en cours …

 function ajaxValidate() { return $('form').validate({ rules: { "Post.Header": { required: true }, "Post.Post": { required: true, minlength: 3 } }, messages: { "Post.Header": "Please enter a header", "Post.Post": { required: "Please enter a message", minlength: "Your message must be 3 characters long" } } }).form(); } 

Essayez d’append un rappel OnBegin à AjaxOptions et renvoyez la valeur de $ (‘form’). Validate (). Form () à partir du rappel. En regardant la source, il semble que cela devrait fonctionner.

 function ajaxValidate() { return $('form').validate().form(); } <% using (Ajax.BeginForm("Post", new AjaxOptions { UpdateTargetId = "GBPostList", InsertionMode = InsertionMode.InsertBefore, OnBegin = "ajaxValidate", OnSuccess = "getGbPostSuccess", OnFailure = "showFaliure" })) { %> 

EDIT mis à jour avec le nom de rappel correct.