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:
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.