HTML - Contrôle de formulaire

-

Types de contrôles de formulaire

HTML propose plusieurs types de contrôles de formulaire qui permettent aux utilisateurs d'interagir avec les formulaires web et de saisir des données. Examinons les différents types de contrôles de formulaire disponibles.

Champs de saisie

Les champs de saisie sont le type de contrôle de formulaire le plus courant. Ils permettent aux utilisateurs de saisir divers types de données, tels que du texte, des chiffres et des dates. Voici quelques champs de saisie couramment utilisés :

Type de champ de saisie Description Élément HTML
Texte Utilisé pour saisir du texte simple, comme des noms, des adresses ou des commentaires html <input type="text">
Mot de passe Similaire aux champs de saisie de texte, mais les caractères saisis sont masqués pour des raisons de sécurité html <input type="password">
Email Conçu spécifiquement pour saisir des adresses e-mail, avec une validation de base pour vérifier la présence du symbole "@" et d'un nom de domaine html <input type="email">
Nombre Utilisé pour saisir des valeurs numériques, souvent avec une validation intégrée pour limiter la saisie aux nombres uniquement html <input type="number">
Date Permet aux utilisateurs de saisir des dates à l'aide d'un sélecteur de date ou en tapant manuellement la date html <input type="date">

Cases à cocher et boutons radio

Les cases à cocher et les boutons radio sont utilisés lorsque les utilisateurs doivent sélectionner une ou plusieurs options parmi un groupe de choix.

Type de contrôle Description Élément HTML
Case à cocher Permet aux utilisateurs de sélectionner plusieurs options dans un groupe, chaque case à cocher fonctionne indépendamment html <input type="checkbox">
Bouton radio Utilisé lorsque les utilisateurs doivent sélectionner une seule option parmi un groupe de choix mutuellement exclusifs, les boutons radio avec le même attribut name sont regroupés ensemble html <input type="radio">

Listes déroulantes et boîtes de sélection

Les listes déroulantes et les boîtes de sélection offrent un moyen aux utilisateurs de choisir une ou plusieurs options dans une liste prédéfinie.

Type de contrôle Description Élément HTML
Liste déroulante Affiche une liste d'options parmi lesquelles les utilisateurs peuvent en sélectionner une, les options sont définies à l'aide d'éléments <option> à l'intérieur de l'élément <select> html <select>
Optgroup Utilisé pour regrouper les options liées dans une liste déroulante, fournit un moyen de catégoriser les options et d'améliorer la lisibilité html <optgroup>
Sélection multiple En ajoutant l'attribut multiple à l'élément <select>, les utilisateurs peuvent sélectionner plusieurs options dans la liste en maintenant enfoncée la touche Ctrl (Windows) ou Command (Mac) tout en cliquant sur les options souhaitées html <select multiple>

Boutons

Les boutons sont utilisés pour déclencher des actions ou soumettre des formulaires.

Type de bouton Description Élément HTML
Soumettre Utilisé pour envoyer les données du formulaire au serveur pour traitement html <input type="submit"> ou html <button type="submit">
Réinitialiser Utilisé pour réinitialiser les champs du formulaire à leurs valeurs par défaut html <input type="reset"> ou html <button type="reset">
Bouton Peut être utilisé pour créer des boutons cliquables qui peuvent effectuer des actions personnalisées à l'aide de JavaScript html <button>

Zones de texte

Les zones de texte sont utilisées pour saisir du texte sur plusieurs lignes.

Type de contrôle Description Élément HTML
Zone de texte Fournit une zone de saisie plus grande pour que les utilisateurs puissent saisir plusieurs lignes de texte, comme des commentaires ou des descriptions html <textarea>

Les attributs rows et cols peuvent être utilisés pour définir les dimensions initiales de la zone de texte. L'attribut rows définit le nombre de lignes de texte visibles, tandis que l'attribut cols définit la largeur moyenne des caractères. Les zones de texte sont redimensionnables par défaut, permettant aux utilisateurs d'ajuster la taille de la zone de saisie. Le comportement de redimensionnement peut être contrôlé à l'aide de propriétés CSS comme resize.

Étiquetage des contrôles de formulaire

L'étiquetage des contrôles de formulaire est un aspect important de la création de formulaires conviviaux et accessibles en HTML. Les étiquettes donnent une description claire de l'objectif de chaque contrôle de formulaire, facilitant ainsi la compréhension et l'interaction avec le formulaire.

Éléments d'étiquette

L'élément <label> est utilisé pour créer une étiquette pour un contrôle de formulaire. Il fournit une description textuelle associée à un contrôle de formulaire spécifique, tel qu'un champ de saisie, une case à cocher ou un bouton radio. Le texte de l'étiquette vous aide à comprendre l'objectif du contrôle de formulaire et les informations que vous devez saisir ou sélectionner.

Conseil: Utilisation de l'élément <label>

<label for="name">Nom :</label>
<input type="text" id="name" name="name">

Dans cet exemple, l'élément <label> est utilisé pour créer une étiquette pour le champ de saisie de texte. L'attribut for de l'élément <label> est défini sur l'attribut id du contrôle de formulaire associé, établissant ainsi une connexion entre l'étiquette et le champ de saisie.

Association des étiquettes aux contrôles de formulaire

Pour associer une étiquette à un contrôle de formulaire, vous pouvez utiliser l'attribut for de l'élément <label>. La valeur de l'attribut for doit correspondre à l'attribut id du contrôle de formulaire correspondant. Cela crée une connexion logique entre l'étiquette et le contrôle de formulaire, vous permettant de cliquer sur l'étiquette pour donner le focus au contrôle associé.

Conseil: Association d'une étiquette à une case à cocher

<input type="checkbox" id="terms" name="terms">
<label for="terms">J'accepte les conditions générales</label>

Dans ce cas, cliquer sur le texte de l'étiquette "J'accepte les conditions générales" basculera l'état de la case à cocher associée.

Importance de l'étiquetage pour l'accessibilité

L'étiquetage des contrôles de formulaire est important pour l'accessibilité. Il vous aide à comprendre l'objectif et le contexte de chaque contrôle de formulaire lors de l'utilisation de technologies d'assistance, comme les lecteurs d'écran. Lorsqu'une étiquette est correctement associée à un contrôle de formulaire, les technologies d'assistance peuvent transmettre le texte de l'étiquette, facilitant ainsi la navigation et l'interaction avec le formulaire.

En plus de l'attribut for, vous pouvez également imbriquer le contrôle de formulaire à l'intérieur de l'élément <label>. Cela associe implicitement l'étiquette au contrôle imbriqué, même sans utiliser l'attribut for. Cependant, l'utilisation de l'attribut for est toujours considérée comme une bonne pratique pour une association explicite.

Conseil: Imbrication d'un bouton radio dans une étiquette

<label>
  <input type="radio" name="gender" value="male"> Homme
</label>
<label>
  <input type="radio" name="gender" value="female"> Femme
</label>

En étiquetant correctement les contrôles de formulaire, vous rendez vos formulaires plus accessibles et conviviaux pour tous les utilisateurs, y compris ceux qui utilisent des technologies d'assistance.

Regroupement des contrôles de formulaire

Lors de la création de formulaires complexes avec plusieurs contrôles de formulaire liés, il peut être utile de les regrouper pour une meilleure organisation et clarté. HTML fournit les éléments <fieldset> et <legend> pour regrouper et étiqueter les contrôles de formulaire associés.

Éléments Fieldset

L'élément <fieldset> regroupe les contrôles de formulaire liés au sein d'un formulaire. Il crée un regroupement visuel et logique des contrôles de formulaire, rendant le formulaire plus structuré et plus facile à comprendre. L'élément <fieldset> contient les contrôles regroupés et peut également inclure une légende ou une étiquette pour le groupe en utilisant l'élément <legend>.

Conseil: Informations de contact

<form>
  <fieldset>
    <legend>Informations de contact</legend>
    <label for="name">Nom :</label>
    <input type="text" id="name" name="name"><br>
    <label for="email">E-mail :</label>
    <input type="email" id="email" name="email"><br>
    <label for="phone">Téléphone :</label>
    <input type="tel" id="phone" name="phone">
  </fieldset>
</form>

Éléments Legend

L'élément <legend> fournit une légende ou une étiquette pour un <fieldset>. Il apparaît comme un en-tête dans le fieldset et décrit les contrôles de formulaire regroupés. L'élément <legend> doit être le premier enfant de l'élément <fieldset>.

Conseil: Adresse de livraison

<fieldset>
  <legend>Adresse de livraison</legend>
  <label for="address">Adresse :</label>
  <input type="text" id="address" name="address"><br>
  <label for="city">Ville :</label>
  <input type="text" id="city" name="city"><br>
  <label for="zip">Code postal :</label>
  <input type="text" id="zip" name="zip">
</fieldset>

Regroupement des contrôles de formulaire liés

Lors du regroupement des contrôles de formulaire à l'aide de <fieldset>, considérez la relation logique entre les contrôles. Regroupez les contrôles qui sont étroitement liés ou appartiennent à la même catégorie. Cela aide à organiser le formulaire et le rend plus facile à comprendre et à remplir pour les utilisateurs.

Voici quelques exemples courants de regroupement de contrôles de formulaire liés :

Groupe Contrôles liés
Informations personnelles Nom, e-mail, téléphone
Détails de l'adresse Rue, ville, état, code postal
Informations de paiement Numéro de carte de crédit, date d'expiration, CVV
Options de livraison Méthode de livraison, adresse de livraison

En regroupant les contrôles de formulaire liés avec <fieldset> et en fournissant des étiquettes claires avec <legend>, vous améliorez l'utilisabilité et la lisibilité de vos formulaires. Cela guide les utilisateurs à travers le formulaire et facilite la compréhension des informations requises.

N'oubliez pas d'utiliser des étiquettes appropriées pour chaque contrôle de formulaire dans le fieldset afin de maintenir l'accessibilité et l'utilisabilité.

Attributs de contrôle de formulaire

HTML propose plusieurs attributs qui peuvent être utilisés pour ajouter des fonctionnalités et des comportements aux contrôles de formulaire. Ces attributs vous permettent de définir des propriétés et des contraintes supplémentaires pour les contrôles de formulaire, améliorant ainsi l'expérience utilisateur et la validation des données. Examinons certains attributs de contrôle de formulaire couramment utilisés.

Attribut Required

L'attribut required est utilisé pour indiquer qu'un contrôle de formulaire doit être rempli avant que le formulaire puisse être soumis. Lorsqu'un contrôle de formulaire possède l'attribut required, le navigateur empêchera la soumission du formulaire si le contrôle est laissé vide ou ne répond pas aux critères de validation spécifiés.

Conseil: Attribut Required

<label for="name">Nom :</label>
<input type="text" id="name" name="name" required>

Dans cet exemple, le champ de saisie de texte pour le nom est marqué comme obligatoire. Si vous essayez de soumettre le formulaire sans saisir de valeur dans ce champ, le navigateur affichera un message d'erreur et empêchera la soumission du formulaire jusqu'à ce qu'une valeur soit fournie.

Attribut Disabled

L'attribut disabled est utilisé pour désactiver un contrôle de formulaire, le rendant non interactif et non modifiable. Les contrôles de formulaire désactivés sont généralement grisés et ne peuvent pas être sélectionnés, cliqués ou modifiés par l'utilisateur.

Conseil: Attribut Disabled

<label for="username">Nom d'utilisateur :</label>
<input type="text" id="username" name="username" disabled>

Dans ce cas, le champ de saisie de texte pour le nom d'utilisateur est désactivé. Vous ne pourrez pas interagir avec ce champ ni en modifier la valeur.

Les contrôles de formulaire désactivés ne sont pas soumis dans le cadre des données du formulaire lors de son envoi. Ils sont ignorés lors du traitement du formulaire.

Attribut Readonly

L'attribut readonly est utilisé pour rendre un contrôle de formulaire en lecture seule, ce qui signifie que vous pouvez voir sa valeur mais ne pouvez pas la modifier. Les contrôles de formulaire en lecture seule peuvent toujours être sélectionnés et inclus dans la soumission du formulaire.

Conseil: Attribut Readonly

<label for="email">Email :</label>
<input type="email" id="email" name="email" value="utilisateur@exemple.com" readonly>

Dans cet exemple, le champ de saisie d'email est marqué comme lecture seule. Vous pouvez voir la valeur pré-remplie mais ne pouvez pas la modifier.

Les contrôles de formulaire en lecture seule sont utiles lorsque vous souhaitez afficher des valeurs pré-remplies ou calculées qui ne doivent pas être modifiées par l'utilisateur.

Attribut Placeholder

L'attribut placeholder est utilisé pour fournir un texte d'indication ou d'exemple à l'intérieur d'un contrôle de formulaire lorsqu'il est vide. Le texte de l'espace réservé disparaît lorsque vous commencez à taper ou lorsque le contrôle de formulaire reçoit le focus.

Conseil: Attribut Placeholder

<label for="search">Recherche :</label>
<input type="text" id="search" name="search" placeholder="Entrez un terme de recherche...">

Dans ce cas, le champ de saisie de texte pour la recherche a un texte d'espace réservé "Entrez un terme de recherche...". Ce texte est affiché à l'intérieur du champ de saisie lorsqu'il est vide, fournissant un indice visuel à l'utilisateur sur la saisie attendue.

Les espaces réservés doivent être utilisés comme une indication supplémentaire et ne doivent pas remplacer l'étiquetage approprié des contrôles de formulaire. Ils sont utiles pour fournir des conseils ou des exemples supplémentaires, mais ne doivent pas être considérés comme le seul moyen de communiquer l'objectif d'un contrôle de formulaire.

Validation des formulaires

La validation des formulaires vérifie les données saisies par l'utilisateur pour s'assurer qu'elles suivent le format attendu, répondent aux critères et sont exemptes d'erreurs ou de données malveillantes. C'est un aspect important de la conception des formulaires web et contribue à maintenir l'intégrité et la sécurité des données. HTML offre des fonctionnalités de validation de formulaire intégrées qui peuvent vérifier les saisies de l'utilisateur côté client avant d'envoyer le formulaire au serveur.

La validation côté client se fait dans le navigateur de l'utilisateur. Elle utilise les attributs de validation de formulaire HTML et JavaScript pour vérifier les données du formulaire avant qu'elles ne soient envoyées au serveur. La validation côté client fournit un retour immédiat aux utilisateurs sur les erreurs ou problèmes éventuels de leurs saisies, leur permettant de corriger les données avant de soumettre le formulaire. Cela améliore l'expérience utilisateur et réduit la charge sur le serveur en détectant les erreurs courantes de manière précoce.

Cependant, la validation côté client n'est pas suffisante à elle seule. Elle peut être contournée ou manipulée par les utilisateurs. La validation côté serveur est également nécessaire pour s'assurer que les données soumises sont valides et sécurisées. La validation côté serveur se produit sur le serveur après la soumission du formulaire. Elle vérifie à nouveau les données du formulaire et effectue une validation plus approfondie, comme la vérification par rapport à une base de données ou l'application de règles métier complexes.

HTML propose plusieurs attributs de validation qui peuvent être ajoutés aux contrôles de formulaire pour spécifier des règles de validation :

Attribut Description
required Spécifie qu'un champ de formulaire doit être rempli avant que le formulaire puisse être soumis
pattern Spécifie un modèle d'expression régulière auquel la valeur du champ de formulaire doit correspondre
min et max Spécifient les valeurs minimales et maximales pour les champs de formulaire numériques
minlength et maxlength Spécifient la longueur minimale et maximale de la valeur saisie
step Spécifie les intervalles numériques autorisés pour les champs de formulaire numériques

Conseil: Utilisation des attributs de validation

<label for="username">Nom d'utilisateur :</label>
<input type="text" id="username" name="username" required minlength="4" maxlength="20">

<label for="email">Email :</label>
<input type="email" id="email" name="email" required>

<label for="age">Âge :</label>
<input type="number" id="age" name="age" min="18" max="120">

Le champ de saisie du nom d'utilisateur est obligatoire et doit avoir une longueur comprise entre 4 et 20 caractères. Le champ de saisie de l'email est obligatoire et doit être une adresse email valide. Le champ de saisie de l'âge doit être un nombre compris entre 18 et 120.

Lorsqu'un formulaire est soumis, le navigateur vérifie les champs de formulaire par rapport aux règles de validation spécifiées. Si l'une des règles n'est pas respectée, le navigateur affiche un message d'erreur et arrête la soumission du formulaire. Les utilisateurs peuvent alors corriger leur saisie et soumettre à nouveau le formulaire.

En plus des attributs de validation HTML intégrés, vous pouvez également utiliser JavaScript pour effectuer une validation plus complexe ou gérer des erreurs personnalisées. JavaScript peut accéder aux champs de formulaire, vérifier leurs valeurs et afficher des messages d'erreur personnalisés ou effectuer une logique de validation supplémentaire.

N'oubliez pas que, bien que la validation côté client améliore l'expérience utilisateur et détecte les erreurs courantes, elle doit toujours être combinée à une validation côté serveur pour garantir la sécurité et l'intégrité des données soumises.

Styliser les contrôles de formulaire

Les contrôles de formulaire peuvent être stylisés avec CSS pour améliorer leur apparence et correspondre au design de votre site web. CSS vous permet de modifier l'apparence des contrôles de formulaire pour les rendre visuellement attrayants et cohérents avec l'identité visuelle de votre site. Voici quelques façons de styliser les contrôles de formulaire avec CSS.

Appliquer du CSS aux contrôles de formulaire

Pour appliquer des styles CSS aux contrôles de formulaire, vous pouvez utiliser des sélecteurs CSS pour cibler des éléments de formulaire spécifiques. Vous pouvez sélectionner les contrôles de formulaire en fonction de leur type, classe, ID ou d'autres attributs. Voici quelques exemples de sélecteurs CSS pour les contrôles de formulaire :

Conseil: Sélecteurs CSS pour les contrôles de formulaire

/* Sélectionner tous les éléments input */
input {
  /* Styles CSS */
}

/* Sélectionner un type d'input spécifique */
input[type="text"] {
  /* Styles CSS */
}

/* Sélectionner un contrôle de formulaire avec une classe spécifique */
.form-control {
  /* Styles CSS */
}

/* Sélectionner un contrôle de formulaire avec un ID spécifique */
#username {
  /* Styles CSS */
}

Une fois que vous avez sélectionné les contrôles de formulaire, vous pouvez appliquer diverses propriétés CSS pour les styliser. Voici quelques propriétés CSS couramment utilisées pour styliser les contrôles de formulaire :

Propriété CSS Description
width et height Définir la taille du contrôle de formulaire
padding Ajouter de l'espace à l'intérieur du contrôle de formulaire
border Définir le style, la largeur et la couleur de la bordure
background-color Définir la couleur de fond du contrôle de formulaire
color Définir la couleur du texte à l'intérieur du contrôle de formulaire
font-family et font-size Définir la famille et la taille de police pour le texte du contrôle de formulaire

Conseil: Styliser les éléments input

input[type="text"] {
  width: 200px;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 16px;
}

Pseudo-classes pour les états des contrôles de formulaire

CSS fournit des pseudo-classes qui vous permettent de styliser les contrôles de formulaire en fonction de leurs états. Les pseudo-classes sont des mots-clés ajoutés aux sélecteurs pour spécifier un état particulier d'un élément. Voici quelques pseudo-classes couramment utilisées pour les contrôles de formulaire :

Pseudo-classe Description
:focus Applique des styles lorsque le contrôle de formulaire a le focus (est en cours d'interaction)
:valid Applique des styles lorsque la valeur du contrôle de formulaire est valide selon ses règles de validation
:invalid Applique des styles lorsque la valeur du contrôle de formulaire est invalide selon ses règles de validation
:disabled Applique des styles lorsque le contrôle de formulaire est désactivé
:read-only Applique des styles lorsque le contrôle de formulaire est en lecture seule

Conseil: Pseudo-classes pour les contrôles de formulaire

input[type="text"]:focus {
  outline: none;
  border-color: blue;
}

input[type="email"]:valid {
  border-color: green;
}

input[type="number"]:invalid {
  border-color: red;
}

input[type="text"]:disabled {
  background-color: #eee;
  cursor: not-allowed;
}

Personnaliser l'apparence des contrôles de formulaire

CSS vous permet de modifier l'apparence des contrôles de formulaire au-delà des styles par défaut du navigateur. Vous pouvez utiliser des propriétés et des techniques CSS pour créer des contrôles de formulaire visuellement attrayants et uniques qui correspondent au design de votre site web.

Conseil: Design personnalisé de case à cocher

input[type="checkbox"] {
  appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  transition: background-color 0.3s;
}

input[type="checkbox"]:checked {
  background-color: #007bff;
  border-color: #007bff;
}
select {
  width: 200px;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  appearance: none;
  background-image: url("arrow-down.svg");
  background-repeat: no-repeat;
  background-position: right 10px center;
}

select:focus {
  outline: none;
  border-color: blue;
}