web-dev-qa-db-fra.com

ASP.NET MVC 3: étapes requises pour la validation discrète côté client du contenu dynamique / AJAX

Quels sont l'ensemble complet des étapes requises pour que la validation discrète côté client fonctionne pour les champs de formulaire insérés dynamiquement?

Pertinents SO posts

ASP.NET MVC 3 validation côté client discrète avec contenu dynamique - Il avait besoin que les attributs de validation discrète apparaissent dans le code HTML généré et l'ont fait en appelant BeginForm

validation ASP.Net MVC 3 sur AjaxForm - Le demandeur utilisait Ajax.BeginForm qui utilise MicrosoftAjax au lieu de JQuery.validation.

PartialView et la validation discrète du client ne fonctionnent pas - Il a eu le problème avec les attributs de validation discrète ne s'affichant pas et remplaçant ViewContext.FormContext comme solution de contournement.

ASP.NET MVC 3: générer une validation discrète lorsque BeginForm est sur la mise en page - Solution de contournement pour les attributs de validation discrète n'apparaissant pas en HTML

Liens pertinents

Brad Wilson's Validation discrète du client dans ASP.NET MVC

Le guide complet de validation dans ASP.NET MVC 3 - Partie 1

Le guide complet de validation dans ASP.NET MVC 3 - Partie 2

Validation discrète côté client avec contenu dynamique dans ASP.NET MVC

39
Kaleb Pederson

À ce stade, je pense que ce qui suit est un ensemble complet d'exigences:

  1. Créez un formulaire avec Html.BeginForm
  2. Activer ClientValidationEnabled
  3. Activer UnobtrusiveJavaScriptEnabled
  4. Définissez les attributs de validation appropriés sur les propriétés du modèle ( pas champs)
  5. Si les assistants HTML utilisés pour créer les éléments de formulaire ne sont pas sur le même formulaire que l'appel Html.BeginForm, Utilisez une solution de contournement appropriée (voir solution de contournement 1 et solution de contournement 2 )
  6. Inclure les fichiers jquery, jquery.validate.js Et jquery.validate.unobtrusive.js, Dans cet ordre
  7. Vérifiez que les attributs de validation discrets sont présents dans le code HTML
  8. Si vous utilisez des validateurs personnalisés:
    • assurez-vous qu'ils sont ajoutés à jQuery.validator.unobtrusive.adapters
    • assurez-vous qu'ils sont ajoutés au plug-in de validation jQuery en appelant jQuery.validator.addMethod.
    • assurez-vous que ce qui précède se produit avant $(document).ready() car à ce moment il est trop tard
  9. Appelez jQuery.validator.unobtrusive.parse Ou jQuery.validator.unobtrusive.parseElement Sur les éléments ajoutés dynamiquement après le chargement initial de la page.
55
Kaleb Pederson