Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer un formulaire HTML efficace
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Créer un formulaire HTML efficace

L'Équipe Alphorm Par L'Équipe Alphorm 13 janvier 2025
Partager
Partager

La collecte efficace de données utilisateur est cruciale pour les sites web modernes.

Sans une structure de formulaire adéquate, les interactions peuvent être frustrantes et peu sécurisées.

Cet article explore comment créer des formulaires HTML efficaces, sécurisés et conviviaux.

Table de matière
Bases du formulaire HTMLChamps de saisie HTMLBoutons radio HTMLCases à cocher HTMLMenus déroulants HTMLValeurs par défaut HTMLChamps obligatoires HTMLZones de saisie HTMLFAQConclusion

Formation HTML et CSS : Le Guide du Débutant

Lancez votre carrière de développeur web avec une formation pratique.

Découvrir cette formation

Bases du formulaire HTML

Les formulaire HTML sont un élément essentiel pour assurer l’intégration entre un utilisateur et un site web ou une application, à travers les données saisies et soumis par l’utilisateurs puis envoyé à un serveur web. Les formulaires ont une variété de taches ils sont couramment utilisés pour collecter des données, commentaires des clients, ou des demandes de personnes de manière structurée et organisée.

Dans cette partie vous allez créer un formulaire qui permet à l’utilisateur de saisir son nom, prénom et un message, puis de valider ses informations.

Formulaire HTML avec champs nom et message

Pour créer ce formulaire vous auez besoin des éléments HTML suivants : la balise <form> et ses attributs, le champ <input> et ses attributs ,la balise <label> ,  la balise <textarea> et la balise <button> pour la soumission .

				
					
 <!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-b5f84ee5-f0b7-432a-b1bd-0f52e4b9e5ba: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-e1223a73-194e-4f4b-aba9-5462c7ed43db: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-b5f84ee5-f0b7-432a-b1bd-0f52e4b9e5ba: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"b5f84ee5-f0b7-432a-b1bd-0f52e4b9e5ba","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-e1223a73-194e-4f4b-aba9-5462c7ed43db: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"e1223a73-194e-4f4b-aba9-5462c7ed43db","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<form method="post" action="traitement.html">
<label for="prenom">Votre prénom:</label>
<input type="text" id="prenom" name="prenom">
<br/><br/>
<label for="nom">Votre nom:</label>
<input type="text" id="nom" name="nom">
<br/><br/>
<label for="msg">Votre message:</label>
<textarea name="message" id="id"></textarea>
<br/><br/>
<input type="submit" value="Valider ce formulaire">
</form>
<script>var rocket_beacon_data = {"ajax_url":"https:\/\/blog.alphorm.com\/wp-admin\/admin-ajax.php","nonce":"e850cd0aec","url":"https:\/\/blog.alphorm.com\/creer-formulaire-html-efficace","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800}</script><script data-name="wpr-wpr-beacon" src='https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/js/wpr-beacon.min.js' async></script><script>class RocketElementorAnimation{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}_detectAnimations(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this._listAnimationSettingsKeys(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach(t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this._animateElement(t)}catch(t){}})}_animateElement(t){const e=JSON.parse(t.dataset.settings),i=e._animation_delay||e.animation_delay||0,n=e[this.animationSettingKeys.find(t=>e[t])];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let s=setTimeout(()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this._removeAnimationSettings(t,e)},i);window.addEventListener("rocket-startLoading",function(){clearTimeout(s)})}_listAnimationSettingsKeys(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach(t=>{e.forEach(e=>{i.push(t+e)})}),i}_removeAnimationSettings(t,e){this._listAnimationSettingsKeys().forEach(t=>delete e[t]),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorAnimation;requestAnimationFrame(t._detectAnimations.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorAnimation.run);</script></body>
</html>

				
			
  • L’élément<form> :Cet élément définit un formulaire . Il s’agit d’un élément conteneur qui contient tous les champs et boutons, il peut également recevoir quelques attributs spécifiques pour gérer son comportement. Toutes ses caractéristiques sont facultatives, mais il est recommandé de définir au moins les caractéristiques action et méthodologie.

Il contient deux attributs essentiels : L’attribut méthode est utilisé pour envoyer les données à un serveur via le formulaire , il peut prendre deux valeur « get » ou « post » .

Pour la méthode « get » les données envoyées sont visibles dans la barre d’adresse du navigateur, mais pour la méthode « post » les données sont envoyées dans le corps donc il est préferable d’utiliser celle ci pour la sécurité des informations .

Pour l’attribut action determine l’endroit (une URL) où les données collectées par le formulaire doivent être transmises.

  • L’élement input :cette balise est utilisé pour créer les champs de saisie dans un formulaire , elle contient deux attributs ; L’attribut « type » définit quelle type de données est attendu dans le chaps de formulaire , peut etre : texte , email , date , url …

Et l’attribut « name » est ajouté pour définir le nom du champ, et pour identifier les données du champ lorsque le formulaire est soumis.

  • Label :C’est une étiquette de chaque champ qui décrit ce que l’utilisateur doit saisir ; elle contient l’attribut « for » qui est utilisé pour associé l’étiquette a un élément du formulaire et attribut fait référence à l’id de l’élément correspondant.
  • Textarea :elle est utilisé pour créer des champs de saisie de texte multilignes. Elle peut être ajouter pour saisir des commentaires , des descriptions ou de long message . vous pouvez personnalisez ce champ en définissant le noms de colonnes et de lignes avec les attributs « rows » and « cols ».
  • L’élement button :pour permettre à l’utilisateur d’envoyer les données renseignées dans le formulaire. Il contient l’attribut « type » qui prend les valeurs ; « submit » pour soumettre les données du formulaire , ou la valeur « reset » pour render les champs du formulaire a leurs valeurs initial . Et l’attribut « Value » la valeur que l’on souhaite qu’elle soit ecrit sur le boutton .

Lorsque l’utilisateur va cliquer sur le boutton valider ce formulaire , il sera dirigé vers la parge traitement.html , qui est mis dans l’attribut « action » .

Capture d'écran de traitement de formulaire HTML

La page du traitement du formulaire si vous utilisez l’action « get » :

Affichage URL traitement du formulaire

Champs de saisie HTML

Comme il est cité précédemment le champ input peut avoir différents types, chacun adapté à des types de données spécifiques.

Voici la liste des types de champs les plus courants :

Le champ de type email : Spécifique aux adresses email, la valeur saisie dans le champ sera automatiquement validée pour vérifier s’il s’agit du format d’une adresse mail valide avant que le formulaire soit envoyé.

				
					
 <input type="email" id="mail" name="email">

				
			
Message d'erreur de validation pour email

Le champ de type password : Permet à l’utilisateur de saisir son mot de passe sans qu’il soit lisible à l’écran.

				
					
 <input type="password" id="pass" name="pass">

				
			
Champ de mot de passe masqué dans formulaire HTML

Le champ de type date : Permet à l’utilisateur de saisir une date, via un champ texte dont la valeur est validée ou avec un sélecteur de date.

				
					
 <input type="date" id="date" name="date">

				
			
Formulaire avec champ date et message.

Le champ de type url : Permet à l’utilisateur de saisir ou d’éditer une URL , avec une validation intégrée .

				
					
 <input type="url" id="web" name="web">

				
			
Champ de formulaire HTML avec erreur URL

Le champ de type number : Permet à l’utilisateur de saisir des nombres numériques, des valeurs entières uniquement. Des mécanismes de validation sont intégrés pour rejeter les valeurs non-numériques.

				
					
 <input type="number" id="age" name="age">

				
			
Message d'erreur pour entrée non valide

Boutons radio HTML

Les boutons radio <input type= »radio »> sont généralement utilisés pour construire des groupes d’options parmi lesquelles on ne peut choisir qu’une valeur. Les « boutons radio » sont représentés par des cercles remplis lorsqu’ils sont sélectionnés.

Capture d'écran d'un formulaire HTML simple
				
					
 - Aimez-vous cette formation ?<br/>
<input type="radio" id="oui" name="formation" value="oui" checked>
<label for="oui">Oui</label>
<input type="radio" id="nom" name="formation" value="non" >
<label for="oui">Non</label>
<br/><br/>
- Etes-vous majeur?<br/>
<input type="radio" id="ouimajeur" name="majeur" value="oui" checked>
<label for="oui">Oui</label>
<input type="radio" id="nonmajeur" name="majeur" value="non" >
<label for="oui">Non</label>
<br/><br/>

				
			

Voici les attributs principaux :

Name : Tous les boutons radio d’un même groupe doivent avoir le même « name » , ce qui signifie qu’une seule option doit être sélectionné . Pas comme dans ce cas si on met un « name » différent pour des éléments du même groupe.

Formulaire HTML avec options Oui et Non

Id: Chaque bouton radio à un identifiant « id » associé à l’attribut « for » dans l’étiquette <label> . Cela permet à l’utilisateur de cliquer sur le texte pour sélectionner l’option.

Value : Chaque bouton doit avoir une valeur unique qui va être ennoyée lorsque le formulaire sera soumis.

Checked : Vous pouvez utiliser l’attribut « checked » a l’une des options pour qu’elle soit sélectionnée par défaut.

Cases à cocher HTML

Les cases à cocher en HTML sont utilisées pour permettre à l’utilisateur de sélectionner plus d’une seule option parmi un ensemble. Ces cases à cocher sont affichés à l’aide du checkbox , qui est un élément input .Pour insérer une case à cocher sur la page web, il faut utiliser le code HTML: < input type= »checkbox » > .

Formulaire HTML avec options de fruits
				
					
 -Quelles sont vos fruits préférés ? <br>
<input type="checkbox" name="fruits" id="banane" value="banane">
<label for="banane">Banane</label><br>
<input type="checkbox" name="fruits" id="pomme" value="pomme">
<label for="pomme">Pomme</label><br>
<input type="checkbox" name="fruits" id="fraise" value="fraise">
<label for="fraise">Fraise</label>
<br/><br/>

				
			

L’attribut type « checkbox » commande au navigateur d’afficher une case à cocher. Par défaut, la case est carrée et aux dimensions standards. Il possède les mêmes attributs que les boutons radio : « id » pour l’identifiant de case à cocher, « name » pour le nom du groupe auquel cette case appartient, « value » étant la valeur envoyée lorsque la case est cochée. Vous pouvez aussi ajouter l’attribut « checked » pour qu’elle soit cochée par défaut.

Menus déroulants HTML

Les listes déroulantes en HTML sont utilisées pour permettre aux utilisateur de sélectionner une option dans un ensemble. Ils sont utilisés pour présenter un grands nombres d’options dans un espace réduit, de maniéré structurée et lisible.

Formulaire avec choix de ville et champ message
				
					
 -De quelle ville Etes-vous ?
<select name="ville" >
<optgroup label="Ville de l'Ouest">
<option value="Brest">Brest</option>
<option value="Rennes">Rennes</option>
<option value="Nantes">Nantes</option>
</optgroup>
<optgroup label="Ville de l'Est">
<option value="Strasbourg">Strasbourg</option>
<option value="Besançon">Besançon</option>
</optgroup>
</select>

				
			

La balise <select> : Cette liste déroulante est créée avec la balise <select name= »  » > avec l’attribut « name » spécifie le nom du champ de formulaire.

La balise option : C’est la balise qui définit les options dans la liste déroulante.

La balise optgroup : Cette balise regroupe les options au sein de la liste, elle permet de rendre le menu plus organisé et clair lorsqu’il y a un grand nombre d’options. L’attribut label définit l’étiquette du groupe d’options. Cette étiquète est lisible par l’utilisateur pour indiquer la catégorie d’option.

Vous pouvez ajouter une sélection par défaut en ajoutant l’attribut « selected » à une balise <option>.

				
					
 <option value="Strasbourg" selected>Strasbourg</option>

				
			
Formulaire HTML avec ville et message

Valeurs par défaut HTML

L’ajout d’une valeur par défaut ou un texte indicatif dans les champs de saisie d’un formulaire aide l’utilisateur à facilement comprendre comment il doit remplir son formulaire. Dans cette partie vous allez voir deux attributs différents : « placeholder » et « value ».

Value : cet attribut définit la valeur par défaut dans le champs de saisie .

Formulaire HTML avec champs et boutons radio

Exemple :

				
					
 <label for="prenom">Votre prénom:</label>
<input type="text" id="prenom" name="prenom" value="Jean ">

				
			

Placeholder : cet attribut est utilisé pour fournir un texte indicatif dans le champ de saisit , ce texte disparait une fois l’utilisateur commence a saisir une valeur . Cet attribut est utile pour fournir des indices contextuels sur ce qui doit être saisie dans les champs de formulaire .

Formulaire HTML avec champ de texte et bouton

Champs obligatoires HTML

Pour rendre un champ de formulaire obligatoire on utilise l’attribut « required » qui peut être ajouté aux éléments input, textarea ou select . Une fois que le champ est marqué comme « required » l’utilisateur ne peut pas soumettre le formulaire avant de remplir ce champ, le navigateur s’assure d’afficher un message au cas où ce dernier est resté vide.

Comme ceci :

				
					
 <input type="password" id="pass" name="pass" required>

				
			
Message d'erreur champ obligatoire formulaire

Zones de saisie HTML

Afin de mieux organiser votre formulaire et le rendre plus lisible et organisé vous pouvez utiliser les balises <fieldset> et <legend> pour regrouper votre formulaire en section en associant une légende décrivant ce groupe.

Formulaire HTML avec champs, radio et cases

<body>

<form method= »get » action= »traitement.html »>

				
					
 <fieldset>
<legend>partie 1 :</legend>
<label for="prenom">Votre prénom:</label>
<input type="text" id="prenom" name="prenom" value="Jean ">
<br/><br/>
<label for="nom">Votre nom:</label>
<input type="text" id="nom" name="nom" value="Dupont">
<br/><br/>
<label for="mail">Votre Email :</label>
<input type="email" id="mail" name="email">
<br/><br/>
<label for="pass">Votre mot de passe  :</label>
<input type="password" id="pass" name="pass" required>
<br/><br/>
<label for="date">Votre date de naissance  :</label>
<input type="date" id="date" name="date">
<br/><br/>
<label for="web">Votre site web   :</label>
<input type="url" id="web" name="web">
<br/><br/>
<label for="age">Votre age:</label>
<input type="number" id="age" name="age">
<br/><br/>
</fieldset>
<fieldset>
<legend>partie 2 :</legend>
- Aimez-vous cette formation ?<br/>
<input type="radio" id="oui" name="formation1" value="oui" checked>
<label for="oui">Oui</label>
<input type="radio" id="nom" name="formation1" value="non" >
<label for="oui">Non</label>
<br/><br/>
- Etes-vous majeur?<br/>
<input type="radio" id="ouimajeur" name="majeur" value="oui" checked>
<label for="oui">Oui</label>
<input type="radio" id="nonmajeur" name="majeur" value="non" >
<label for="oui">Non</label>
<br/><br/>
-Quelles sont vos fruits préférés ? <br>
<input type="checkbox" name="fruits" id="banane" value="banane">
<label for="banane">Banane</label><br>
<input type="checkbox" name="fruits" id="pomme" value="pomme">
<label for="pomme">Pomme</label><br>
<input type="checkbox" name="fruits" id="fraise" value="fraise">
<label for="fraise">Fraise</label>
<br/><br/>
-De quelle ville Etes-vous ?
<select name="ville" >
<optgroup label="Ville de l'Ouest">
<option value="Brest">Brest</option>
<option value="Rennes">Rennes</option>
<option value="Nantes">Nantes</option>
</optgroup>
<optgroup label="Ville de l'Est">
<option value="Strasbourg" selected>Strasbourg</option>
<option value="Besançon">Besançon</option>
</optgroup>
</select>
<br/><br/>
<label for="msg">Votre message:</label>
<textarea name="message" id="id" placeholder="ecrivez un message"></textarea>
<br/><br/>
<input type="submit" value="Valider ce formulaire">
</fieldset>
</form>
<script>var rocket_beacon_data = {"ajax_url":"https:\/\/blog.alphorm.com\/wp-admin\/admin-ajax.php","nonce":"e850cd0aec","url":"https:\/\/blog.alphorm.com\/creer-formulaire-html-efficace","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800}</script><script data-name="wpr-wpr-beacon" src='https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/js/wpr-beacon.min.js' async></script></body>

				
			

Voici le lien du CodePen si vous voulez faire des modifications

See the Pen Application fondamentaux de jQuery by Alphorm (@alphorm) on CodePen.

En résume, Les formulaires en HTML ont un rôle primordial dans la collecte des données et informations de l’utilisateurs sur des sites web, en permettant à ce dernier des possibilités d’interactions telles que l’inscription la connexion, et la soumission de commentaires. Ils comportent divers éléments comme des champs de texte, des boutons radio, et des menus déroulants pour structurer les entrées. Qui jouent un rôle important en simplifiant la communication entre l’utilisateur et le serveur, ce qui permet de personnaliser et de traiter les données. En plus de la collecte de données, les formulaires contribuent à l’accessibilité et à l’amélioration de l’expérience utilisateur sur le web.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment créer un formulaire HTML basique ?
Pour créer un formulaire HTML basique, utilisez la balise
pour définir le formulaire, en ajoutant des champs de saisie avec la balise . Assurez-vous de spécifier les attributs essentiels comme ‘action’ et ‘method’ pour déterminer comment et où les données sont envoyées. Des éléments tels que