COMMENT

Page d'accueil

Menus

Barre d'icônes Icône de menu Accordéon Onglets Onglets verticaux En-têtes d'onglet Onglets pleine page Onglets de survol Navigation supérieure Topnav réactif Barre de navigation avec icônes Menu de recherche Barre de recherche Barre latérale fixe Navigation dans les pages Barre latérale réactive Navigation plein écran Menu hors-toile Survolez les boutons Sidenav Barre latérale avec icônes Menu de défilement horizontal Menu vertical Navigation en bas Bas de page réactif Liens de navigation de la bordure inférieure Liens de menu alignés à droite Lien de menu centré Liens de menu de même largeur Menu fixe Faites glisser la barre vers le bas sur le défilement Masquer la barre de navigation sur le défilement Réduire la barre de navigation lors du défilement Barre de navigation collante Barre de navigation sur l'image Survolez les listes déroulantes Cliquez sur Listes déroulantes Liste déroulante en cascade Liste déroulante dans Topnav Liste déroulante dans Sidenav Liste déroulante de la barre de navigation Resp Menu de sous-navigation Déposer jusqu'à Méga Menu Menu mobile Menu rideau Barre latérale réduite Panneau latéral réduit Pagination Chapelure Groupe de boutons Groupe de boutons verticaux Barre sociale collante Navigation dans les pilules En-tête réactif

Images

Diaporama Galerie de diaporamas Images modales Boite à lumière Grille d'images réactive Grille d'images Galerie d'onglets Fondu de superposition d'image Diapositive de superposition d'image Zoom de superposition d'image Titre de superposition d'image Icône de superposition d'image Effets d'image Image en noir et blanc Texte de l'image Blocs de texte d'image Texte d'image transparent Image pleine page Formulaire sur l'image Image du héros Image d'arrière-plan floue Changer Bg sur le défilement Images côte à côte Images arrondies Images d'avatars Images réactives Centrer les images Vignettes Bordure autour de l'image Rencontrer l'équipe Image collante Retourner une image Secouer une image Galerie de portefeuilles Portefeuille avec filtrage Zoom sur les images Loupe d'image Curseur de comparaison d'images Icône de favori

Boutons

Boutons d'alerte Boutons de contour Boutons partagés Boutons animés Boutons de fondu Bouton sur l'image Boutons de médias sociaux En savoir plus En lire moins Boutons de chargement Boutons de téléchargement Boutons de pilule Bouton de notification Boutons d'icône Boutons suivant/précédent Plus de bouton dans la navigation Bloquer les boutons Boutons de texte Boutons ronds Bouton de défilement vers le haut

Formes

Formulaire de connexion Formulaire d'inscription Formulaire de paiement Formulaire de contact Formulaire de connexion sociale Formulaire d'inscription Formulaire avec icônes Bulletin Formulaire empilé Formulaire réactif Formulaire contextuel Formulaire en ligne Effacer le champ de saisie Masquer les flèches numérotées Copier le texte dans le presse-papiers Recherche animée Bouton de recherche Recherche plein écran Champ de saisie dans la barre de navigation Formulaire de connexion dans la barre de navigation Case à cocher personnalisée/Radio Sélection personnalisée Interrupteur à bascule Cochez la case Détecter le verrouillage des majuscules Bouton de déclenchement à l'entrée Validation du mot de passe Basculer la visibilité du mot de passe Formulaire en plusieurs étapes Saisie automatique Désactiver la saisie semi-automatique Désactiver le correcteur orthographique Bouton de téléchargement de fichier Validation d'entrée vide

Filtres

Filtrer la liste Tableau de filtrage Éléments filtrants Liste déroulante des filtres Trier la liste Sort Table

les tables

Table à rayures zébrées Tables centrales Tableau pleine largeur Tableaux côte à côte Tableaux réactifs Tableau de comparaison

Suite

Vidéo plein écran Boîtes modales Supprimer modal Chronologie Indicateur de défilement Barres de progression Barre de compétences Curseurs de plage Info-bulles Survol de l'élément d'affichage Popups Pliant Calendrier HTML inclut Liste de choses à faire Chargeurs Évaluation étoilée Note de l'utilisateur Effet de superposition Contacter les puces Cartes Retourner la carte Carte de profil Fiche produit Alertes Faire appel à Remarques Étiquettes Cercles Style RH Coupon Groupe de liste Liste sans puces Texte réactif Texte découpé Texte lumineux Pied de page fixe Élément collant Hauteur égale Clearfix Flotteurs réactifs Snack-bar Fenêtre plein écran Faire défiler le dessin Défilement lisse Dégradé Bg Défilement En-tête collant Réduire l'en-tête lors du défilement Tableau des prix Parallaxe Ratio d'aspect Iframes réactifs Basculer J'aime/Je n'aime pas Basculer Masquer/Afficher Basculer en mode sombre Basculer le texte Basculer la classe Ajouter une classe Supprimer la classe Classe active Arborescence Supprimer la propriété Détection hors ligne Trouver l'élément caché Rediriger la page Web Zoom survol Boîte à rabat Centrer verticalement Bouton central en DIV Transition au survol Flèches Formes Lien de téléchargement Élément pleine hauteur Fenêtre du navigateur Barre de défilement personnalisée Masquer la barre de défilement Afficher/Forcer la barre de défilement Apparence de l'appareil Bordure modifiable Couleur de l'espace réservé Couleur de sélection de texte Couleur de puce Ligne verticale Diviseurs Animer des icônes Compte à rebours Machine à écrire Bientôt disponible Chat Messages Fenêtre de discussion contextuelle Écran divisé Témoignages Compteur de sections Diaporama de citations Éléments de liste fermables Points d'arrêt de périphérique typiques Élément HTML déplaçable Requêtes multimédia JS Surligneur de syntaxe Animations JS Longueur de la chaîne JS Exponentation JS Paramètres JS par défaut Obtenir l'URL actuelle Obtenir la taille d'écran actuelle Obtenir des éléments Iframe

Site Internet

Créer un site Web gratuit Créer un site Web Créer un site Web statique Créer un site Web (W3.CSS) Créer un site Web (BS3) Créer un site Web (BS4) Créer un site Web (BS5) Créer et afficher un site Web Créer un site Web d'arborescence de liens Créer un portefeuille Créer un CV Créer un site Web de restaurant Créer un site Web d'entreprise Créer un WebBook Site Web du centre Contacter la rubrique À propos de la page Grand en-tête Exemple de site Web

Grille

Disposition à 2 colonnes Disposition à 3 colonnes Disposition à 4 colonnes Grille extensible Affichage de la grille de liste Disposition des colonnes mixtes Cartes de colonne Disposition en zigzag Mise en page du blog

Google

Graphiques Google Polices Google Associations de polices Google Configurer Google Analytics

Convertisseurs

Convertir le poids Convertir la température Convertir la longueur Convertir la vitesse

Blog

Obtenir un emploi de développeur Devenez développeur front-end.

Comment – Formulaire en plusieurs étapes


Découvrez comment créer un formulaire en plusieurs étapes.


Assistant Formulaire - Formulaire en plusieurs étapes :

S'inscrire:

Nom:

Informations de contact:

Date d'anniversaire:

Informations de connexion :


Étape 1) Ajoutez du HTML :

Exemple

<form id="regForm" action="">

<h1>Register:</h1>

<!-- One "tab" for each step in the form: -->
<div class="tab">Name:
  <p><input placeholder="First name..." oninput="this.className = ''"></p>
  <p><input placeholder="Last name..." oninput="this.className = ''"></p>
</div>

<div class="tab">Contact Info:
  <p><input placeholder="E-mail..." oninput="this.className = ''"></p>
  <p><input placeholder="Phone..." oninput="this.className = ''"></p>
</div>

<div class="tab">Birthday:
  <p><input placeholder="dd" oninput="this.className = ''"></p>
  <p><input placeholder="mm" oninput="this.className = ''"></p>
  <p><input placeholder="yyyy" oninput="this.className = ''"></p>
</div>

<div class="tab">Login Info:
  <p><input placeholder="Username..." oninput="this.className = ''"></p>
  <p><input placeholder="Password..." oninput="this.className = ''"></p>
</div>

<div style="overflow:auto;">
  <div style="float:right;">
    <button type="button" id="prevBtn" onclick="nextPrev(-1)">Previous</button>
    <button type="button" id="nextBtn" onclick="nextPrev(1)">Next</button>
  </div>
</div>

<!-- Circles which indicates the steps of the form: -->
<div style="text-align:center;margin-top:40px;">
  <span class="step"></span>
  <span class="step"></span>
  <span class="step"></span>
  <span class="step"></span>
</div>

</form>


Étape 2) Ajoutez CSS :

Stylisez les éléments de formulaire :

Exemple

/* Style the form */
#regForm {
  background-color: #ffffff;
  margin: 100px auto;
  padding: 40px;
  width: 70%;
  min-width: 300px;
}

/* Style the input fields */
input {
  padding: 10px;
  width: 100%;
  font-size: 17px;
  font-family: Raleway;
  border: 1px solid #aaaaaa;
}

/* Mark input boxes that gets an error on validation: */
input.invalid {
  background-color: #ffdddd;
}

/* Hide all steps by default: */
.tab {
  display: none;
}

/* Make circles that indicate the steps of the form: */
.step {
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbbbbb;
  border: none;
  border-radius: 50%;
  display: inline-block;
  opacity: 0.5;
}

/* Mark the active step: */
.step.active {
  opacity: 1;
}

/* Mark the steps that are finished and valid: */
.step.finish {
  background-color: #04AA6D;
}

Étape 3) Ajoutez JavaScript :

Exemple

var currentTab = 0; // Current tab is set to be the first tab (0)
showTab(currentTab); // Display the current tab

function showTab(n) {
  // This function will display the specified tab of the form ...
  var x = document.getElementsByClassName("tab");
  x[n].style.display = "block";
  // ... and fix the Previous/Next buttons:
  if (n == 0) {
    document.getElementById("prevBtn").style.display = "none";
  } else {
    document.getElementById("prevBtn").style.display = "inline";
  }
  if (n == (x.length - 1)) {
    document.getElementById("nextBtn").innerHTML = "Submit";
  } else {
    document.getElementById("nextBtn").innerHTML = "Next";
  }
  // ... and run a function that displays the correct step indicator:
  fixStepIndicator(n)
}

function nextPrev(n) {
  // This function will figure out which tab to display
  var x = document.getElementsByClassName("tab");
  // Exit the function if any field in the current tab is invalid:
  if (n == 1 && !validateForm()) return false;
  // Hide the current tab:
  x[currentTab].style.display = "none";
  // Increase or decrease the current tab by 1:
  currentTab = currentTab + n;
  // if you have reached the end of the form... :
  if (currentTab >= x.length) {
    //...the form gets submitted:
    document.getElementById("regForm").submit();
    return false;
  }
  // Otherwise, display the correct tab:
  showTab(currentTab);
}

function validateForm() {
  // This function deals with validation of the form fields
  var x, y, i, valid = true;
  x = document.getElementsByClassName("tab");
  y = x[currentTab].getElementsByTagName("input");
  // A loop that checks every input field in the current tab:
  for (i = 0; i < y.length; i++) {
    // If a field is empty...
    if (y[i].value == "") {
      // add an "invalid" class to the field:
      y[i].className += " invalid";
      // and set the current valid status to false:
      valid = false;
    }
  }
  // If the valid status is true, mark the step as finished and valid:
  if (valid) {
    document.getElementsByClassName("step")[currentTab].className += " finish";
  }
  return valid; // return the valid status
}

function fixStepIndicator(n) {
  // This function removes the "active" class of all steps...
  var i, x = document.getElementsByClassName("step");
  for (i = 0; i < x.length; i++) {
    x[i].className = x[i].className.replace(" active", "");
  }
  //... and adds the "active" class to the current step:
  x[n].className += " active";
}