SlideShare a Scribd company logo
1 of 6
Download to read offline
FORMULAIRES


Balises de formulaire

Balise       Type    Description
                     Délimite un formulaire.
                     Vous devrez généralement donner 2 attributs à la balise <form>

                         • method : indique la méthode d'envoi du formulaire (get ou post). Si vous ne
<form>       Block
                            savez pas quoi utiliser, mettez post.
                         • action : la page vers laquelle le visiteur doit être redirigé lorsqu'il a validé votre
                            formulaire.

                     Permet de regrouper plusieurs éléments d'un formulaire.
                     On l'utilise généralement dans de grands formulaires.
<fieldset>   Block
                    Pour donner un titre à votre groupe, utilisez la balise <legend>
                    Titre d'un groupe dans un formulaire.
<legend>     Inline
                    A utiliser à l'intérieur d'un <fieldset>
                    Titre d'un élément de formulaire.
<label>      Inline Généralement, vous devrez mettre l'attribut for sur cette balise pour indiquer l'ID de
                    l'élément auquel correspond le label.
                    Champ de formulaire.
                    Il existe de nombreux types de champs différents. Vous choisissez le type de champ
                    que vous désirez grâce à l'attribut type :

                    Code : HTML
                     1 <!-- Zone de texte d'une ligne -->
                     2 <input type="text" />
                     3 <!-- Mot de passe (le texte est caché) -->
                     4 <input type="password" />
                     5 <!-- Envoi de fichier -->
                     6 <input type="file" />
                     7 <!-- Case à cocher -->
<input />    Inline 8 <input type="checkbox" />
                     9 <!-- Bouton d'option -->
                    10 <input type="radio" />
                    11 <!-- Bouton -->
                    12 <input type="button" />
                    13 <!-- Bouton d'envoi -->
                    14 <input type="submit" />
                    15 <!-- Bouton de remise à zéro -->
                    16 <input type="reset" />
                    17 <!-- Champ caché -->
                    18 <input type="hidden" />



<textarea> Inline Zone de saisie multiligne.
                  Vous pouvez définir sa taille grâce aux attributs rows et cols (nombre de lignes et
Balise           Type   Description
                        colonnes) ou bien le faire en CSS grâce aux propriétés width et height.
                        Liste déroulante.
                        Utilisez la balise <option> pour créer chaque élément de la liste :

                        Code : HTML
                        1 <select name="pays">
<select>         Inline
                        2 <option value="france">France</option>
                        3 <option value="espagne">Espagne</option>
                        4 <option value="italie">Italie</option>
                        5 </select>

<option>   Block Element d'une liste déroulante
                 Groupe d'éléments d'une liste déroulante.
<optgroup> Block A utiliser dans le cas d'une grande liste déroulante.
                 Vous devez utiliser l'attribut label pour donner un nom au groupe.


    • GET pour des transferts de données assez faibles (256 caractères maxi) et POST pour la normale et
      de plus obligatoire pour le type "Mailto")
    • ENCTYPE est l'attribut de codification en méthode POST, mais peu utilisé, sauf pour le "Mailto" avec
      enctype="text/plain" qui permet une présentation lisible du mail reçu.


method="post" Indique que les données saisies doivent être passés "silencieusement" : pas dans la barre
d'adresse Permet de faire passer facilement des données complexes (long textes ou texte avec des
caractères spéciaux par exemple) d'une page à une autre method="get" Indique que les donnêes saisies
doivent être passés dans la barre d'adresse Attention à la longueur des variables passée ainsi qu' caractères
spéciaux




                                             Balises HTML5

HTML5 vient enreichir ces formulaires pour les rendre plus complets, intuitifs et sécurisés. La principale
nouveauté des formulaires dits « 2.0 » consiste à un ensemble de nouveuax types pour nos champs input.
La plupart du temps, nous utilisons dans l'attribut type les valeurs text et password.
Nous pouvons désormais utiliser entre autres :
    •    search
    •    tel
    •    email
    •    url
    •    date
    •    number
    •    range
    •    color
Formulaires de recherche
Les champs de recherche sont assez différents des champs de texte classique, d'un point de vue d eleur
comportement et de leur apparence. Les systèmes d'exploitation et certains logiciels comme les navigateurs
utilisent des champs de recherche personnalisés. Par exemple, effacer le champ du contenu en cliquant sur
une petite croix. Ces champs ont la plupart du temps une icône particulière comme une loupe ou le logo
d'un moteur de recherche. Ces styles et comportements sont familiers pour les utilisatisateurs et sont très
intuitifs. Il est donc tout à fait pertinent de les utiliser dans le cadre d'un site web. En utilisant le type search
sur un champ, vous améliorerez en plus l'accessibilité de votre site, car les logiciels d'assistance bont
proposer des raccourcis vers ce champ.
Pour réellement maîtriser le style de ce champ sur Safari et Chrome sur MacOs, il vous faut écrire cette
règle CSS :
input[type= »search »]{
-webkit-appareance:textfield ;
}


Les adresses mail
La valeur email permet d'exiger que l'utilisateur entre une adresse email. Plus besoin d'appliquer
d'expression rationnelle Javascript pour vérifier la validité d'une adresse.
De plus, vos utilisateurs équipés de smartphones vous seront très reconnaissants puisque le fait d'utiliser un
type email affiche un clavier virtuel adapté aux adresses email.


Les numéros de téléphone
La valeur tel permet de spécifier que l'utilisateur doit entrer un numéro de téléphone. Encore une fois, le
clavier virtuel des smartphones s'adaptera en conséquence.


Les URL
Ici encore le clavier des smartphones s’adaptera en conséquence pour saisir rapidement une URL simple.


Le type date
SI vous avez besoin de demander une date à un utilisateur, certaines questions se posent. La date est-elle
valide syntaciquement ? La date existe-t-elle ? Dans quel format est-elle écrite ? LE type date vise à
simplifier la saisie de dates en proposant un sélecteur natif, disponible en plusieurs déclinaisons. Le
navigateur Opera est le plus en avance sur les formulaires HTML5 et propose déjà un ensemble très complet
de sélecteurs de dates.
Il existe plusieurs déclinaisons du sélecteur de date, qui varie le type spécifié :
    •     datetime pour le jour et l'heure avec le décalage horaire
    •     datetime-local pour le jour et l'heure sans le décalage horaire
    •     date pour sélectionner uniquement la date
    •     time pour sélectionner uniquement l'heure
    •     week pour la semaine
    •     month pour le mois
Les attributs min max et step peuvent être utilisés pour définir les limites à ne pas dépasser. A noter qu'il n'y
a pas de moyen prévu pour styliser le sélecteur de date.


Les types number et range
Jusqu’à présent, lorsqu'un utilisateur avait à saisir un nombre dans une page web, il devait obligatoirement
le faire en utilisant le clavier. Pourtant les systèmes d'exploitation intègrent nativement depuis longtemps
deux alternatives à la saisie au clavier : les sliders et les « champs avec des petits boutons à droite pour
augmenter ou réduire.
Il est à présent possible d'utiliser ces types d'entrées dans une page HTML avec les types number et range.
Vous pouvez spécifier quelles sont les valeurs minimales et maximales avec les attributs min et max, ainsi
que le pas avec l'attribut step qui prennent tous les trois des valeurs numériques.
Exemple pour un champ numérique allant de 0 à 100 par pas de 5 en partant de 50 :
<input type= »numer » min= »0 » max= »100 » step= »5 » value= »50 »>


Les nuanciers de couleurs
Il peut arriver que vous ayez à demander à un utilisateur de sélectionner une couleur de son choix. Dans ce
cas, le plus pratique est de lui fournir un nuancier afin qu'il visualise graphiquement l'ensemble des
couleurs qu'il peut choisir. Il existe bien sûr des sélecteurs de couleur en Javascript, mais comme d'habitude,
nous préférerons opter pour la solution native qui évite de charger beaucoup de Javascript et qui propose
un interface déjà connue de l'utilisateur.
Les suggestions
La datalist est un nouvel élément qui est en quelque sorte un mélange entre une liste déroulante et un
champ texte libre. Lorsque l'utilisateur sélectionne le champ, une liste de suggestions apparaît afin de lui
proposer des entrées pertinentes.
Les différents suggestions se déclarent avec des éléments option, comme pour les listes déroulantes
habituelles.
Exemple :
<input type= »text » list= »serie »>
<datalist id= »serie »>
        <option value= »Les Simpsons »>
        <option value = »South Park »
        <option value= »Futurama »>
</datalist>


La validation des données
Un point essentiel des formulaires 2.0 est l'apport de restrictions sur les valeurs entrées dans le champs. Si
la validation finale des données doit toujours se faire côté serveur pour des raisons de sécurité, côté client
vous pouvez maintenant aider l'utilisateur avec un minimum de code et une interface native. Ceci remplace
les kilomètres de Javascript que vous deviez taper pour chaque formulaire.
Si l'utilisateur entre des lettres dans un champ number ou tel par exemple, le navigateur va réagir pour le
prévenir que les informations qu'il a entrées sont invalides. Il va également vérifier la validité de l'ensemble
du formulaire juste avant l'envoi, afin de demander des corrections si elles sont nécessaires.
Chaque navigateur est libre de décider de l'apparence que prendront ses indicateurs. Ils seront donc par
conséquent différents sur chaque navigateur.


Personnaliser les champs erronés et requis
De nouvelles pseudo-classes CSS permettent de personnaliser les champs. Par exemple:invalid et:required
permettent de les styliser lorsqu'ils sont détectés invalides ou pour indiquer qu'ils sont requis.
Exemple :
<form>
         <label for= »url »>URL</label>
         <input id= »url » type = »url » required />
         <label for= »email »>Email</label>
         <input id= »email » type= »email » required />
         <label for= »tel » type= »tel »>Téléphone</label>
         <input id= »tel » type= »tel » />
         <input type= »submit »>
</form>


CSS :
:required {border:1px solid blue;}
:invalid{background-color:#FDD}


Désactiver la validation automatique
Si vous souhaitez désactiver la vérification native du navigateur, utilisez l'attribut novalidate de la balise
form.


Rendre un champ obligatoire
Utilisez l'attribut required.


Utiliser les expressions rationnelles pour la validation
Si vous souhaitez effectuer des vérifications spécifiques (exemple présence d'un tiret, ou limitation à
certains caractères) vous pouvez effectuer la validation de la structure de la chaîne de caractères avec une
expression rationnelle (ou regex) et l'utiliser dans l'attribut patern.
Pour en savoir plus sur les expressions rationnelles :
http://fr.wikipedia.org/wiki/Expression_rationnelle
http://www.toutjavascript.com/savoir/savoir22_1.php3


Exemple :
<input type= »text » pattern= »[A-Z][a-z]+-[A-Z][a-z]+ »>
Placeholder attribut
Cet attribut permet d’insérer dans votre champ un exemple de texte à saisir qui a la propriété de disparaître
au focus. Ceci remplace l’utilisation de javascript pour réaliser cette opération…
<form>
<input type="text" name="first-name" placeholder="John"/><br/>
<input type="text" name="last-name" placeholder="Doe"/><br/>
<input type="submit" name="submit" value="Save"/>
</form>


Autofocus
cet attribut permet de sélectionner un champ en particulier au chargement de la page
<form>
<input type="text" name="first-name" placeholder="John"/><br/>
<input type="text" name="last-name" autofocus/><br/>
</form>

More Related Content

What's hot (14)

Outils de publication pour e-sidoc
Outils de publication pour e-sidocOutils de publication pour e-sidoc
Outils de publication pour e-sidoc
 
Cours html5
Cours html5Cours html5
Cours html5
 
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
 
Initiation au html
Initiation au htmlInitiation au html
Initiation au html
 
Tutorial html
Tutorial htmlTutorial html
Tutorial html
 
HTML & CSS
HTML & CSSHTML & CSS
HTML & CSS
 
Html
HtmlHtml
Html
 
HTML basics
HTML basics HTML basics
HTML basics
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligence
 
Rmll2010 Html5 Css3
Rmll2010 Html5 Css3Rmll2010 Html5 Css3
Rmll2010 Html5 Css3
 
34 Mots de html pour créer sa Newsletter
34 Mots de html pour créer sa Newsletter34 Mots de html pour créer sa Newsletter
34 Mots de html pour créer sa Newsletter
 
Le langage HTML
Le langage HTMLLe langage HTML
Le langage HTML
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
La messagerie Orange
La messagerie OrangeLa messagerie Orange
La messagerie Orange
 

Viewers also liked

2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communication2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communicationSynergie Informatique France
 
5. ejemplo plan ii trimestre, jornada, actv. integradora
5. ejemplo plan ii trimestre, jornada, actv. integradora5. ejemplo plan ii trimestre, jornada, actv. integradora
5. ejemplo plan ii trimestre, jornada, actv. integradoraAdalberto
 
Portrait chinois de sarah fessler
Portrait chinois de sarah fesslerPortrait chinois de sarah fessler
Portrait chinois de sarah fesslerSarah Shackelford
 
Les fonctions commerciales
Les fonctions commercialesLes fonctions commerciales
Les fonctions commercialesLyes Lellouchi
 
Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012LeoBurnettFrance
 
Les fêtes
Les fêtesLes fêtes
Les fêteshuyssenm
 
Armadillo SimeSitem 2013
Armadillo SimeSitem 2013Armadillo SimeSitem 2013
Armadillo SimeSitem 2013GabrielHardy
 
Présentation1
Présentation1Présentation1
Présentation1baksimo
 
Ma cci elle sert à ça
Ma cci elle sert à çaMa cci elle sert à ça
Ma cci elle sert à çaAgence Vega
 
20100127
2010012720100127
20100127aljt
 
Catalogue industrie 2011 CAE GROUPE
Catalogue industrie 2011 CAE GROUPECatalogue industrie 2011 CAE GROUPE
Catalogue industrie 2011 CAE GROUPECAE GROUPE
 
État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...
État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...
État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...Mélanie Lavigueur
 

Viewers also liked (20)

Publicités de Metz
Publicités de MetzPublicités de Metz
Publicités de Metz
 
2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communication2013 synergie collab sametime & unified communication
2013 synergie collab sametime & unified communication
 
Portrait chinois de katie
Portrait chinois de katiePortrait chinois de katie
Portrait chinois de katie
 
5. ejemplo plan ii trimestre, jornada, actv. integradora
5. ejemplo plan ii trimestre, jornada, actv. integradora5. ejemplo plan ii trimestre, jornada, actv. integradora
5. ejemplo plan ii trimestre, jornada, actv. integradora
 
Portrait chinois de sarah fessler
Portrait chinois de sarah fesslerPortrait chinois de sarah fessler
Portrait chinois de sarah fessler
 
Mon portrait chinois
Mon portrait chinoisMon portrait chinois
Mon portrait chinois
 
Les fonctions commerciales
Les fonctions commercialesLes fonctions commerciales
Les fonctions commerciales
 
Portrait chinois de megan
Portrait chinois de meganPortrait chinois de megan
Portrait chinois de megan
 
Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012Leo Burnett We Are Open, Novembre 2012
Leo Burnett We Are Open, Novembre 2012
 
Les fêtes
Les fêtesLes fêtes
Les fêtes
 
Tennis
TennisTennis
Tennis
 
Les packs Home Media
Les packs Home MediaLes packs Home Media
Les packs Home Media
 
Armadillo SimeSitem 2013
Armadillo SimeSitem 2013Armadillo SimeSitem 2013
Armadillo SimeSitem 2013
 
Présentation1
Présentation1Présentation1
Présentation1
 
Ma cci elle sert à ça
Ma cci elle sert à çaMa cci elle sert à ça
Ma cci elle sert à ça
 
Mr364 Megane0
Mr364 Megane0Mr364 Megane0
Mr364 Megane0
 
20100127
2010012720100127
20100127
 
20110518 ra-pero2
20110518   ra-pero220110518   ra-pero2
20110518 ra-pero2
 
Catalogue industrie 2011 CAE GROUPE
Catalogue industrie 2011 CAE GROUPECatalogue industrie 2011 CAE GROUPE
Catalogue industrie 2011 CAE GROUPE
 
État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...
État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...
État de la présence sur les médias sociaux de Ravensburger - Par Mélanie Lavi...
 

Similar to Formulaires

Formation html5 css3 java script
Formation html5 css3 java scriptFormation html5 css3 java script
Formation html5 css3 java scriptArrow Group
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2Benoît Simard
 
Conception Web Avec Dreamweaver
Conception Web Avec DreamweaverConception Web Avec Dreamweaver
Conception Web Avec Dreamweaverdavidbx
 
UElibre_Internet.pdf
UElibre_Internet.pdfUElibre_Internet.pdf
UElibre_Internet.pdfAliELKSIMI1
 
UElibre_Internet.ppt
UElibre_Internet.pptUElibre_Internet.ppt
UElibre_Internet.pptshikaneza
 
seance3-1 CSS.ppt
seance3-1 CSS.pptseance3-1 CSS.ppt
seance3-1 CSS.pptAmineReal
 
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Formation html3 css3
Formation html3 css3Formation html3 css3
Formation html3 css3Thierry Gayet
 
Cours Html.pdf
Cours Html.pdfCours Html.pdf
Cours Html.pdf4gnzggpfdw
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 

Similar to Formulaires (20)

Formation html5 css3 java script
Formation html5 css3 java scriptFormation html5 css3 java script
Formation html5 css3 java script
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2
 
WPF.pptx
WPF.pptxWPF.pptx
WPF.pptx
 
CSS 3
CSS 3CSS 3
CSS 3
 
Conception Web Avec Dreamweaver
Conception Web Avec DreamweaverConception Web Avec Dreamweaver
Conception Web Avec Dreamweaver
 
UElibre_Internet.pdf
UElibre_Internet.pdfUElibre_Internet.pdf
UElibre_Internet.pdf
 
UElibre_Internet.ppt
UElibre_Internet.pptUElibre_Internet.ppt
UElibre_Internet.ppt
 
UElibre_Internet.ppt
UElibre_Internet.pptUElibre_Internet.ppt
UElibre_Internet.ppt
 
seance3-1 CSS.ppt
seance3-1 CSS.pptseance3-1 CSS.ppt
seance3-1 CSS.ppt
 
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
 
Crs javascript
Crs javascriptCrs javascript
Crs javascript
 
cours Php
cours Phpcours Php
cours Php
 
Html css
Html cssHtml css
Html css
 
Formation html3 css3
Formation html3 css3Formation html3 css3
Formation html3 css3
 
Cours Html.pdf
Cours Html.pdfCours Html.pdf
Cours Html.pdf
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
HTML5 en Entreprise
HTML5 en EntrepriseHTML5 en Entreprise
HTML5 en Entreprise
 
Atelier template
Atelier templateAtelier template
Atelier template
 
Initiation au css
Initiation au cssInitiation au css
Initiation au css
 

Formulaires

  • 1. FORMULAIRES Balises de formulaire Balise Type Description Délimite un formulaire. Vous devrez généralement donner 2 attributs à la balise <form> • method : indique la méthode d'envoi du formulaire (get ou post). Si vous ne <form> Block savez pas quoi utiliser, mettez post. • action : la page vers laquelle le visiteur doit être redirigé lorsqu'il a validé votre formulaire. Permet de regrouper plusieurs éléments d'un formulaire. On l'utilise généralement dans de grands formulaires. <fieldset> Block Pour donner un titre à votre groupe, utilisez la balise <legend> Titre d'un groupe dans un formulaire. <legend> Inline A utiliser à l'intérieur d'un <fieldset> Titre d'un élément de formulaire. <label> Inline Généralement, vous devrez mettre l'attribut for sur cette balise pour indiquer l'ID de l'élément auquel correspond le label. Champ de formulaire. Il existe de nombreux types de champs différents. Vous choisissez le type de champ que vous désirez grâce à l'attribut type : Code : HTML 1 <!-- Zone de texte d'une ligne --> 2 <input type="text" /> 3 <!-- Mot de passe (le texte est caché) --> 4 <input type="password" /> 5 <!-- Envoi de fichier --> 6 <input type="file" /> 7 <!-- Case à cocher --> <input /> Inline 8 <input type="checkbox" /> 9 <!-- Bouton d'option --> 10 <input type="radio" /> 11 <!-- Bouton --> 12 <input type="button" /> 13 <!-- Bouton d'envoi --> 14 <input type="submit" /> 15 <!-- Bouton de remise à zéro --> 16 <input type="reset" /> 17 <!-- Champ caché --> 18 <input type="hidden" /> <textarea> Inline Zone de saisie multiligne. Vous pouvez définir sa taille grâce aux attributs rows et cols (nombre de lignes et
  • 2. Balise Type Description colonnes) ou bien le faire en CSS grâce aux propriétés width et height. Liste déroulante. Utilisez la balise <option> pour créer chaque élément de la liste : Code : HTML 1 <select name="pays"> <select> Inline 2 <option value="france">France</option> 3 <option value="espagne">Espagne</option> 4 <option value="italie">Italie</option> 5 </select> <option> Block Element d'une liste déroulante Groupe d'éléments d'une liste déroulante. <optgroup> Block A utiliser dans le cas d'une grande liste déroulante. Vous devez utiliser l'attribut label pour donner un nom au groupe. • GET pour des transferts de données assez faibles (256 caractères maxi) et POST pour la normale et de plus obligatoire pour le type "Mailto") • ENCTYPE est l'attribut de codification en méthode POST, mais peu utilisé, sauf pour le "Mailto" avec enctype="text/plain" qui permet une présentation lisible du mail reçu. method="post" Indique que les données saisies doivent être passés "silencieusement" : pas dans la barre d'adresse Permet de faire passer facilement des données complexes (long textes ou texte avec des caractères spéciaux par exemple) d'une page à une autre method="get" Indique que les donnêes saisies doivent être passés dans la barre d'adresse Attention à la longueur des variables passée ainsi qu' caractères spéciaux Balises HTML5 HTML5 vient enreichir ces formulaires pour les rendre plus complets, intuitifs et sécurisés. La principale nouveauté des formulaires dits « 2.0 » consiste à un ensemble de nouveuax types pour nos champs input. La plupart du temps, nous utilisons dans l'attribut type les valeurs text et password. Nous pouvons désormais utiliser entre autres : • search • tel • email • url • date • number • range • color
  • 3. Formulaires de recherche Les champs de recherche sont assez différents des champs de texte classique, d'un point de vue d eleur comportement et de leur apparence. Les systèmes d'exploitation et certains logiciels comme les navigateurs utilisent des champs de recherche personnalisés. Par exemple, effacer le champ du contenu en cliquant sur une petite croix. Ces champs ont la plupart du temps une icône particulière comme une loupe ou le logo d'un moteur de recherche. Ces styles et comportements sont familiers pour les utilisatisateurs et sont très intuitifs. Il est donc tout à fait pertinent de les utiliser dans le cadre d'un site web. En utilisant le type search sur un champ, vous améliorerez en plus l'accessibilité de votre site, car les logiciels d'assistance bont proposer des raccourcis vers ce champ. Pour réellement maîtriser le style de ce champ sur Safari et Chrome sur MacOs, il vous faut écrire cette règle CSS : input[type= »search »]{ -webkit-appareance:textfield ; } Les adresses mail La valeur email permet d'exiger que l'utilisateur entre une adresse email. Plus besoin d'appliquer d'expression rationnelle Javascript pour vérifier la validité d'une adresse. De plus, vos utilisateurs équipés de smartphones vous seront très reconnaissants puisque le fait d'utiliser un type email affiche un clavier virtuel adapté aux adresses email. Les numéros de téléphone La valeur tel permet de spécifier que l'utilisateur doit entrer un numéro de téléphone. Encore une fois, le clavier virtuel des smartphones s'adaptera en conséquence. Les URL Ici encore le clavier des smartphones s’adaptera en conséquence pour saisir rapidement une URL simple. Le type date SI vous avez besoin de demander une date à un utilisateur, certaines questions se posent. La date est-elle valide syntaciquement ? La date existe-t-elle ? Dans quel format est-elle écrite ? LE type date vise à simplifier la saisie de dates en proposant un sélecteur natif, disponible en plusieurs déclinaisons. Le navigateur Opera est le plus en avance sur les formulaires HTML5 et propose déjà un ensemble très complet de sélecteurs de dates. Il existe plusieurs déclinaisons du sélecteur de date, qui varie le type spécifié : • datetime pour le jour et l'heure avec le décalage horaire • datetime-local pour le jour et l'heure sans le décalage horaire • date pour sélectionner uniquement la date • time pour sélectionner uniquement l'heure • week pour la semaine • month pour le mois
  • 4. Les attributs min max et step peuvent être utilisés pour définir les limites à ne pas dépasser. A noter qu'il n'y a pas de moyen prévu pour styliser le sélecteur de date. Les types number et range Jusqu’à présent, lorsqu'un utilisateur avait à saisir un nombre dans une page web, il devait obligatoirement le faire en utilisant le clavier. Pourtant les systèmes d'exploitation intègrent nativement depuis longtemps deux alternatives à la saisie au clavier : les sliders et les « champs avec des petits boutons à droite pour augmenter ou réduire. Il est à présent possible d'utiliser ces types d'entrées dans une page HTML avec les types number et range. Vous pouvez spécifier quelles sont les valeurs minimales et maximales avec les attributs min et max, ainsi que le pas avec l'attribut step qui prennent tous les trois des valeurs numériques. Exemple pour un champ numérique allant de 0 à 100 par pas de 5 en partant de 50 : <input type= »numer » min= »0 » max= »100 » step= »5 » value= »50 »> Les nuanciers de couleurs Il peut arriver que vous ayez à demander à un utilisateur de sélectionner une couleur de son choix. Dans ce cas, le plus pratique est de lui fournir un nuancier afin qu'il visualise graphiquement l'ensemble des couleurs qu'il peut choisir. Il existe bien sûr des sélecteurs de couleur en Javascript, mais comme d'habitude, nous préférerons opter pour la solution native qui évite de charger beaucoup de Javascript et qui propose un interface déjà connue de l'utilisateur. Les suggestions La datalist est un nouvel élément qui est en quelque sorte un mélange entre une liste déroulante et un champ texte libre. Lorsque l'utilisateur sélectionne le champ, une liste de suggestions apparaît afin de lui proposer des entrées pertinentes. Les différents suggestions se déclarent avec des éléments option, comme pour les listes déroulantes habituelles. Exemple : <input type= »text » list= »serie »> <datalist id= »serie »> <option value= »Les Simpsons »> <option value = »South Park » <option value= »Futurama »> </datalist> La validation des données Un point essentiel des formulaires 2.0 est l'apport de restrictions sur les valeurs entrées dans le champs. Si la validation finale des données doit toujours se faire côté serveur pour des raisons de sécurité, côté client vous pouvez maintenant aider l'utilisateur avec un minimum de code et une interface native. Ceci remplace les kilomètres de Javascript que vous deviez taper pour chaque formulaire. Si l'utilisateur entre des lettres dans un champ number ou tel par exemple, le navigateur va réagir pour le prévenir que les informations qu'il a entrées sont invalides. Il va également vérifier la validité de l'ensemble du formulaire juste avant l'envoi, afin de demander des corrections si elles sont nécessaires.
  • 5. Chaque navigateur est libre de décider de l'apparence que prendront ses indicateurs. Ils seront donc par conséquent différents sur chaque navigateur. Personnaliser les champs erronés et requis De nouvelles pseudo-classes CSS permettent de personnaliser les champs. Par exemple:invalid et:required permettent de les styliser lorsqu'ils sont détectés invalides ou pour indiquer qu'ils sont requis. Exemple : <form> <label for= »url »>URL</label> <input id= »url » type = »url » required /> <label for= »email »>Email</label> <input id= »email » type= »email » required /> <label for= »tel » type= »tel »>Téléphone</label> <input id= »tel » type= »tel » /> <input type= »submit »> </form> CSS : :required {border:1px solid blue;} :invalid{background-color:#FDD} Désactiver la validation automatique Si vous souhaitez désactiver la vérification native du navigateur, utilisez l'attribut novalidate de la balise form. Rendre un champ obligatoire Utilisez l'attribut required. Utiliser les expressions rationnelles pour la validation Si vous souhaitez effectuer des vérifications spécifiques (exemple présence d'un tiret, ou limitation à certains caractères) vous pouvez effectuer la validation de la structure de la chaîne de caractères avec une expression rationnelle (ou regex) et l'utiliser dans l'attribut patern. Pour en savoir plus sur les expressions rationnelles : http://fr.wikipedia.org/wiki/Expression_rationnelle http://www.toutjavascript.com/savoir/savoir22_1.php3 Exemple : <input type= »text » pattern= »[A-Z][a-z]+-[A-Z][a-z]+ »>
  • 6. Placeholder attribut Cet attribut permet d’insérer dans votre champ un exemple de texte à saisir qui a la propriété de disparaître au focus. Ceci remplace l’utilisation de javascript pour réaliser cette opération… <form> <input type="text" name="first-name" placeholder="John"/><br/> <input type="text" name="last-name" placeholder="Doe"/><br/> <input type="submit" name="submit" value="Save"/> </form> Autofocus cet attribut permet de sélectionner un champ en particulier au chargement de la page <form> <input type="text" name="first-name" placeholder="John"/><br/> <input type="text" name="last-name" autofocus/><br/> </form>