Loupe

Valider les champs cachés avec jquery validator

Dernièrement j'ai dû utiliser des accordéons afin de cacher des parties d'un formulaire assez conséquent et ainsi faciliter le remplissage par les utilisateurs. 

Un bug est très vite apparu lors de la sauvegarde du formulaire car les champs requis n'étaient pas validés malgré l'utilisation de jquery validate. Après investigation, il s'est avéré que ces champs était ceux contenus dans les parties fermées des accordéons et donc cachés au niveau du DOM.

Une petite recherche m'a permis de trouver ce post, où est indiqué ce changelog qui précise que, depuis la version 1.9 du plugin, les champs cachés ne sont plus pris en compte lors de la validation.

Très bien, mais comment faire pour le forcer à valider ces champs qui malgré leur invisibilité sont requis pour l'envoi du formulaire?

La méthode consiste à surcharger le paramètre par défaut ignore qui prend en compte les champs hidden:

$.validator.defaults.ignore = [];

Si vous avez une application ASP.NET Core avec razor, vous pouvez rajouter cette option dans le fichier _ValidationScriptsPartial.cshtml afin que cela soit pris en compte dans toute l'application. Il est cependant préférable de faire la manipulation ponctuellement, sur les pages où cette option vous porte préjudice.

Happy coding !

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus