Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site
Je vous conseille à revoir éventuellement la spécification HTML4 en matière de formulaire.
HTML4 - les tableaux & les formulaires
Tout ce que vous lirez dans ce chapitre est toujours valide en HTML5.
Ce formulaire permet de s'inscrire à un centre de vacances. Il s'agit donc d'un formulaire de soumission.
Le code inclut la plupart des nouveautés proposés par la version 5 de HTML et la version 3 de CSS relatives aux formulaires c'est à dire les nouveaux types de champs et les nouveaux attributs pour l'élément INPUT.
Lorsque vous cliquez sur le bouton de soumission, les données sont envoyées vers la page cible seulement si le contrôles HTML
sont vérifiés.
Ces contrôles découlent de l'emploi des attributs required, pattern et de nouveaux types de champs (email, number, tel,etc.
Ainsi si un champ "required" est vide OU si un champ de type "number" contient du texte OU si un champ de type "email" ne contient pas @ alors
la soumission est bloquée et des messages (différents selon les navigateurs) apparaissent.
C'est pour cette raison qu'on parle de contrôle "navigateur" pour désigner les contrôles découlant du code HTML.
Ci-dessous quelques règles de style pour gérer l'affichage des zones de saisie monoligne.
Pas de nouveautés par rapport à HTML4.
Comme il s'agit d'un formulaire de soumission les attributs action & method sont obligatoires.
Une expression régulière définit un gabarit de saisie. Si la saisie dans un champ "required" ne respecte pas ce gabarit la tentative de soumission échouera.
HTML5 introduit de nouveaux types pour la balise INPUT
Pour dessiner des boutons de commande dans un formulaire il est désormais conseillé d'utiliser la balise double button
plutôt que la balise simple input type ='button/reset/submit'.
Les types possibles de l'élément BUTTON sont : "submit" (soumission des données), "reset" (effacement des données)
et "button" (pour appeler une fonction JS).
Remplissez le formulaire !
Tant que vous laissez des champs vides ou remplis avec des valeurs invalides vous n'arrivez pas à accéder à la page cible ("form_saisie.php").
Tant qu'une saisie est incorrecte le texte est en rouge mais passe au vert dès qu'elle devient valide.
Réservez un séjour dans notre centre de vacances !
Attention les contrôles de saisie grâce aux attributs pattern & required ne sont actifs que si la soumission s'opère avec un bouton de validation de type "submit" (input ou button).
Soumission via la méthode "submit()" de JavaScript.
Même si les champs sont mal renseignés ou pas renseignés on accède à la page cible.
Donc pour utiliser les contrôles "navigateur" le bouton de validation doit être impérativement de type "submit"
(la méthode "submit()" de Javascript est à bannir).
En plus du contrôle 'navigateur' (découlant de l'emploi des attributs required & pattern et des types de champs) il peut y avoir un script de contrôle. En effet le contrôle 'navigateur' a ses limites comme je vais vous le montrer dans l'exemple ci-dessous.
Théme : formulaire pour s'inscrire à un site (créer son espace perso).
Cette page contient outre le code du formulaire HTML, un script.
Il faut que non seulement les saisies respectent un gabarit (défini par le type de INPUT) ou par l'attribut "pattern".
Mais il faut en plus que les deux adresses mail saisies soient identiques et les deux mots de passe le soient.
Or HTML est incapable de faire des comparaisons d'où la nécessité d'un script.
Remarquez que l'élement "button" est de type "submit" pour activer les contrôles 'navigateur'.
La syntaxe de la balise FORM est particulière on submit ="return fenvoi()".
Ce qui signifie que si la fonction "fenvoi()" retourne VRAI il y a soumission sinon la soumission est bloquée.
Faites des erreurs de saisie : deux adresses mail différentes OU ne respectant pas le 'pattern' ; deux mots de passe différents
ou ne respectant pas le gabarit : soumission bloquée.
Et enfin saisissez deux adresses mail identiques et correctes et deux mots de passe identiques et correctes : la soumission
est effectuée.
Pour terminer ce chapitre une remarque concernant les champs de type "number".
Attention un INPUT de type "number" n'autorise que la saisie d'entiers sauf si vous rajoutez l'attribut step='any'.
Un champ de type "number" autorise aussi les attributs "min & max". Ces deux attributs sont argumentés avec des bornes numériques.
Observez bien tous les attributs des balises input type ="number" ...
Notez aussi l'attribut onsubmit dans la balise FORM : sur soumission appel de la fonction alert().
Il ne s'agit pas à proprement parler d'un formulaire de soumission mais le bouton de commande de type "submit"
combiné avec l'attribut "required" bloque la validation si l'un des champs n'est pas renseigné.
Vous êtes obligé de remplir les deux champs pour afficher le message.