2010-06-09 7 views
1

J'ai un peu de mal avec la validation côté client dans le framework ASP.NET MVC 2 et j'espère que quelqu'un pourra m'aider.Comment réinitialiser le mode de validation du client ASP.NET MVC?

Dans plusieurs situations, je trouve utile de pouvoir réinitialiser le contenu d'un formulaire ou d'un seul élément d'entrée et j'ai besoin que les erreurs de validation disparaissent. Cela en soi est pas très difficile, et la suggestion fournie fonctionne ici assez bien: How do I clear MVC client side validation errors when a cancel button is clicked when a user has invalidated a form?

Le problème est que, lorsqu'il est déclenché, la validation du client passe en mode agressif qui effectue une validation sur chaque pression de touche et quand une entrée perd concentrer. Existe-t-il un bon moyen de réinitialiser cet état?

Répondre

2

Il s'est avéré que certains de mes problèmes pouvaient être résolus en réglant le bouton de réinitialisation sur le type reset que respecte le cadre de validation. Cela ne fonctionne pas lorsqu'un soumettre échoué se produit (en raison de champs non valides) et dans ce cas, je fini par utiliser la fonction suivante (selector est une chaîne de sélecteur jQuery):

resetFieldValidation: function (selector) { 
    var fields = $(selector); 
    fields.removeClass('input-validation-error').addClass('input-validation-valid'); 
    fields.siblings('.field-validation-error').text('').removeClass('field-validation-error').addClass('field-validation-valid'); 
    fields.each(function() { 
     $(this)[0]['__MVC_HasTextChanged'] = false; 
     $(this)[0]['__MVC_HasValidationFired'] = false; 
    }); 
} 

La dernière partie des ensembles de fonctions Valeurs indiquant au cadre de validation que les champs n'ont pas changé et n'ont pas précédemment déclenché une erreur de validation.

+0

Vous avez fait ma journée Morten;) Merci +1 pour vous (y) –

Questions connexes