Ces types de zones sont tous une spécialisation de l'élément input.

La gestion automatique de formats de données spécifiques est bien sûr toujours intéressante en général. Elle peut aussi apporter un plus quand la page est vue sur une tablette ou un smart phone qui pourront éventuellement fournir un clavier adapté pour effectuer la saisie.

Nombres

Exemple : zone de saisie nombre

La zone est faite avec l'élément input dont l'attribut type a la valeur number. L'élément input est un élement vide (ie sans balise de fermeture).

La zone doit avoir un attribut name dont la valeur doit être unique parmi toutes les zones composant le formulaire.

Attribut possible Utilité
autocomplete Autocomplétion. Les saisies précédemment faites dans la zone sont proposées. Attribut booléen.
autofocus 1er élément activé dans le formulaire. Attribut booléen.
dirname Direction du texte saisi.
disabled Zone désactivée, non transmise au serveur. Aucune interaction n'est possible avec la zone (pas de focus, pas de copie, etc). Attribut booléen.
form id du formulaire associé si la zone n'est pas un élément form ou concerne un autre formulaire que celui dans lequel elle est imbriquée.
list id de la liste de suggestions associée à la zone.
max Valeur maximale acceptée. Nombre à virgule flottante.
min Valeur minimale acceptée. Nombre à virgule flottante.
name Nom de la zone.
readonly Zone en lecture seule, transmise au serveur. La zone peut avoir le focus et le contenu peut être copié. Attribut booléen.
required Zone obligatoire. Attribut booléen.
step Valeur du pas d'incrément/décrément. Nombre à virgule flottante positif.
value Valeur initiale de la zone et valeur transmise au serveur après saisie.

Avec type=number, l'élément input accepte des attributs permettant de limiter l'intervalle de saisie (min et max) et de finir un pas d'incrément (step) .
La définition de ce pas d'incrément est importante car elle permet de donner le format du nombre : le nombre saisi ne pourra pas avoir plus de décimales que la valeur de step.
S la valeur de step est un entier, le nombre saisi devra être un entier. Si la valeur de step est 0.1, le nombre saisi ne pourra pas avoir plus de 1 décimal. Si la valeur de step est 0.01, le nombre saisi ne pourra pas avoir plus de 2 décimal. Etc.

Avant d'envoyer le contenu du formulaire au serveur, le navigateur vérifie la validité de la zone. Si la valeur saisie dans la zone n'est pas un nombre, ou si elle est hors limite ou ne correspond pas au format défini par step, un message d'erreur est affiché automatiquement par le navigateur et l'envoi du formulaire est bloqué.
Le texte du message, sa mise en forme et son positionnement ne sont pas gérés par le code HTML mais par le navigateur.

Utilisez l'exemple suivant pour tester ces fonctionnalités.

Exemple : zone de saisie nombre

Recherche location

recherche location

Complétez le code HTML pour obtenir le résultat ci-contre.

La feuille de style liée à l'exercice (form05.css) fera automatiquement la mise en forme des éléments fieldset et legend

Le formulaire utilise la méthode POST pour envoyer les informations saisies à location.php.

Les zones de saisie des nombres ont les caractèristiques suivantes.

Nom Valeur mini Valeur maxi Valeur défaut Incrément
nbrPieces 1 8 3 1
nbrSurface 15 200 70 5
nbrMini 100 1000 100 50
nbrMaxi 100 1000 100 50
nbrMois 0 12 1 0.5

Le bouton radio indiquant la recherche sur le nombre de pièces est sélectionné par défaut.

Les boutons s'appellent btnReset et btnSubmit.

Code à compléter

Exercice : recherche location

Une solution possible

Exercice : recherche location

URL

Exemple : zone de saisie URL

La zone est faite avec l'élément input dont l'attribut type a la valeur url. L'élément input est un élement vide (ie sans balise de fermeture).

La zone doit avoir un attribut name dont la valeur doit être unique parmi toutes les zones composant le formulaire.

Avant d'envoyer le contenu du formulaire au serveur, le navigateur vérifie la validité de la zone. Si la valeur saisie dans la zone n'est pas une URL valide, un message d'erreur est affiché automatiquement par le navigateur et l'envoi du formulaire est bloqué.
Le texte du message, sa mise en forme et son positionnement ne sont pas gérés par le code HTML mais par le navigateur.

Attribut possible Utilité
autocomplete Autocomplétion. Les saisies précédemment faites dans la zone sont proposées. Attribut booléen.
autofocus 1er élément activé dans le formulaire. Attribut booléen.
dirname Direction du texte saisi.
disabled Zone désactivée, non transmise au serveur. Aucune interaction n'est possible avec la zone (pas de focus, pas de copie, etc). Attribut booléen.
form id du formulaire associé si la zone n'est pas un élément form ou concerne un autre formulaire que celui dans lequel elle est imbriquée.
list id de la liste de suggestions associée à la zone.
maxlength Nombre maximal de caractères pouvant être saisis.
name Nom de la zone.
pattern Expression régulière à laquelle doit correspondre la valeur de la zone. Permet de vérifier la saisie. Des centaines d'expressions régulières.
placeholder Texte d'aide, d'indication de saisie.
readonly Zone en lecture seule, transmise au serveur. La zone peut avoir le focus et le contenu peut être copié. Attribut booléen.
required Zone obligatoire. Attribut booléen.
size Nombre de caractères visibles directement. Si l'attribut est absent, la valeur par défaut est 20.
value Valeur initiale de la zone et valeur transmise au serveur après saisie.

e-mail

Exemple : zone de saisie e-mail

La zone est faite avec l'élément input dont l'attribut type a la valeur email. L'élément input est un élement vide (ie sans balise de fermeture).

La zone doit avoir un attribut name dont la valeur doit être unique parmi toutes les zones composant le formulaire.

Avant d'envoyer le contenu du formulaire au serveur, le navigateur vérifie la validité de la zone. Si la valeur saisie dans la zone n'est pas une adresse e-mail valide, un message d'erreur est affiché automatiquement par le navigateur et l'envoi du formulaire est bloqué.
Le texte du message, sa mise en forme et son positionnement ne sont pas gérés par le code HTML mais par le navigateur.

Attribut possible Utilité
autocomplete Autocomplétion. Les saisies précédemment faites dans la zone sont proposées. Attribut booléen.
autofocus 1er élément activé dans le formulaire. Attribut booléen.
dirname Direction du texte saisi.
disabled Zone désactivée, non transmise au serveur. Aucune interaction n'est possible avec la zone (pas de focus, pas de copie, etc). Attribut booléen.
form id du formulaire associé si la zone n'est pas un élément form ou concerne un autre formulaire que celui dans lequel elle est imbriquée.
list id de la liste de suggestions associée à la zone.
maxlength Nombre maximal de caractères pouvant être saisis.
name Nom de la zone.
pattern Expression régulière à laquelle doit correspondre la valeur de la zone. Permet de vérifier la saisie. Des centaines d'expressions régulières.
placeholder Texte d'aide, d'indication de saisie.
readonly Zone en lecture seule, transmise au serveur. La zone peut avoir le focus et le contenu peut être copié. Attribut booléen.
required Zone obligatoire. Attribut booléen.
size Nombre de caractères visibles directement. Si l'attribut est absent, la valeur par défaut est 20.
value Valeur initiale de la zone et valeur transmise au serveur après saisie.

Enquête

enquête

Complétez le code HTML pour obtenir le résultat ci-contre.

La feuille de style liée à l'exercice (form05.css) fera automatiquement la mise en forme des éléments fieldset et legend

Le formulaire utilise la méthode POST pour envoyer les informations saisies à enquete.php.

Les zones de saisie s'appellent respectivement urlMoteur, urlSite et melAdresse. Les 3 zones sont obligatoires et affichent un texte d'aide. La zone urlMoteur est liée à une liste de suggestions qui propose http://www.google.fr et http://www.bing.fr.

Les boutons s'appellent btnReset et btnSubmit.

Code à compléter

Exercice : enquête

Une solution possible

Exercice : enquête

Téléphone

Exemple : zone de saisie téléphone

La zone est faite avec l'élément input dont l'attribut type a la valeur tel. L'élément input est un élement vide (ie sans balise de fermeture).

La zone doit avoir un attribut name dont la valeur doit être unique parmi toutes les zones composant le formulaire.

Il n'existe aucun format prédéfini de numéros de téléphone à cause de la multiplicité de ceux-ci au niveau mondial.
Il faut utiliser l'attribut pattern et des expressions régulières si on veut mettre en place une validation de la saisie effectuée dans la zone.

^(\d{2}[\-\. ]?){4}\d{2}$
validera la saisie de numéros français comme 0102030405, 01 02 03 04 05, 01.02.03.04.05 et 01-02-03-04-05.

^\+(9[976]\d|8[987530]\d|6[987]\d|5[90\d|42\d|3[875]\d| 2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]| 3[9643210]|2[70]|7|1)\d{1,14}$
validera la saisie de numéros de téléphone au format international comme +33102030405.

Exemple : validation de numéro de téléphone
Attribut possible Utilité
autocomplete Autocomplétion. Les saisies précédemment faites dans la zone sont proposées. Attribut booléen.
autofocus 1er élément activé dans le formulaire. Attribut booléen.
dirname Direction du texte saisi.
disabled Zone désactivée, non transmise au serveur. Aucune interaction n'est possible avec la zone (pas de focus, pas de copie, etc). Attribut booléen.
form id du formulaire associé si la zone n'est pas un élément form ou concerne un autre formulaire que celui dans lequel elle est imbriquée.
list id de la liste de suggestions associée à la zone.
maxlength Nombre maximal de caractères pouvant être saisis.
name Nom de la zone.
pattern Expression régulière à laquelle doit correspondre la valeur de la zone. Permet de vérifier la saisie. Des centaines d'expressions régulières.
placeholder Texte d'aide, d'indication de saisie.
readonly Zone en lecture seule, transmise au serveur. La zone peut avoir le focus et le contenu peut être copié. Attribut booléen.
required Zone obligatoire. Attribut booléen.
size Nombre de caractères visibles directement. Si l'attribut est absent, la valeur par défaut est 20.
value Valeur initiale de la zone et valeur transmise au serveur après saisie.