
Ce petit tuto a pour but de vous faciliter la vie quand vous tentez de valider vos formulaires en utilisant la technologie Javascript. A l'aide du framework Jquery et d'un de ses plugins nommé très simplement « formvalidation », vous gagnerez un temps considérable dans la gestion des erreurs de saisie.
Avant toute chose, je souhaite vous mettre en garde : Il est toujours possible pour un utilisateur de désactiver le Javascript, il n'est donc pas très judicieux de se baser sur ces données comme étant fiables. (Un petit script de vérification PHP est donc à rajouter, mais ce n'est pas l'objet du tuto). Le fait d'avoir une vérification Javascript permet dans un premier temps d'alléger la navigation du visiteur. En effet celui-ci ne sera pas obligé d'attendre une nouvelle requête vers le serveur, étant donné que tout la vérification s'effectue sur le poste du client.
Vous pouvez dés à présent, télécharger Jquery (J'utilise la version 1.2.6, ce plugin fonctionne probablement avec les versions inférieures mais contient quelques bugs sur la nouvelle version 1.3.1) et la première version du plugin FormValidation(1.1.1).
Créez un nouveau fichier HTML que vous nommerez formulaire.html avec ceci :
Voilà, il s'agit juste d'HTML. je fais simplement un import des 2 fichiers Javascript Jquery et son plugin (attention à l'ordre) et d'une feuille de style que je retoucherais après. Mon formulaire est sinon assez banal avec pour chaque élément input, select, et textarea un attribut id et un attribut name. La balise <label> permet de donner une information sur le champ à remplir et il est mis en relation avec ce champ en fonction de son attribut for qui correspond à l'id du champ input,select ou textarea.
Pour faire appel à mon plugin et le relier à mon formulaire, nous avons juste à l'initialiser en reprenant l'Id du formulaire (ici "formulairecontact"). Voici comment procéder, recopiez ses lignes de code juste après l'importation du plugin FormValidation. Ces lignes seront éxécutées lorsque la page aura été complètement chargée dans le navigateur (et l'arbre DOM mis en mémoire).
Nous allons à présent modifier le formulaire et signaler en HTML quels sont les champs requis, le type de contenu attendu. Pour cela nous allons ajouter des attributs qui n'ont pas de signification en HTML (et rendront donc votre page invalide). Cependant ils vous faciliteront grandement la tâche lors de la création de vos formulaires...Les 3 attributs que nous allons utilisez sont les suivants:
Voici ce que cela peut donner:
J'avoue que le fait de rajouter des attributs inexistants dans un fichier qui plus est, est un document xHTML n'est pas sémantiquement très correct. Mais ça a le mérite de vous éviter quelques galères pour la validation de vos formulaires.

Enfin nous avons fini notre validation de formulaire (si si...). Je vous l'accorde c'est pour l'instant très moche. Il reste encore quelques choses à modifier et à ajouter (traduire le plugin, le styliser et annoncer les erreurs autrement que dans une popup...).
Tout d'abord, il faut veiller à traduire le plugin. Voici les quelques lignes qui nous dérangent : ligne 97, 102, 103 et 104.
Ensuite nous allons faire en sorte que le message d'erreur ne s'affiche plus dans un vulgaire Alert ligne 117. L'idée est ici de remplir un paragraphe class="error". Initialement vide dans le code html comme ceci:
Avec les propriétés CSS suivantes (dans le fichier feuilledestyle.css). D'ailleurs j'en profite pour styliser les champs du formulaire qui sont faux (Le plugin , lors de la validation change leurs attributs class à "invalidInput").
Reprenons maintenant notre plugin formValidation et réécrivons cette ligne 117 afin d'afficher le contenu des erreurs dans le paragraphe <p class="error"></p>.
Cela nous donne ce code, que vous pouvez remplacer par les lignes 116 et 117:
Le code est assez parlant, si le formulaire contient des erreurs alors nous mettons notre variable avec les erreurs dans le paragraphe .error . S'il est en display:none; (par défault en CSS) Alors on l'affiche avec l'effet déroulant slideDown. Enfin s'il n'y a pas d'erreurs, on affiche le paragraphe qui indique à l'utilisateur de patienter (en attendant que la page se rafraîchisse). Comme vous pouvez le voir si vous avez testé ce code, les erreurs s'affichent sans retour à la ligne, ce qui n'est pas très élégant: Modifiez donc les lignes dans les fonctions required, mask et equal, lors de l'ajout de l'erreur à la variable err_list rajouter une balise <br />. Comme ceci par exemple pour la fonction required :
Voila le tuto semble se terminer. Il ne reste plus qu'à rendre le formulaire un peu plus agréable en CSS. Voici ma proposition (feuilledestyle.css):
Merci pour votre attention! Je suis preneur si vous pouvez améliorer mon CSS!
Comme sur votre capture d'écran avec l'alert Javascript je n'ai pas réussi à demander une validation pour le textarea.
En tout cas très bon tuto ! Ca marche super, excepté pour le textearea mais je dois me planté quelque part.