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 – Saisie semi-automatique


Découvrez comment créer une saisie semi-automatique.


Saisie automatique

Commencer à écrire:



Créer un formulaire de saisie semi-automatique

Étape 1) Ajoutez du HTML :

Exemple

<!--Make sure the form has the autocomplete function switched off:-->
<form autocomplete="off" action="/action_page.php">
  <div class="autocomplete" style="width:300px;">
    <input id="myInput" type="text" name="myCountry" placeholder="Country">
  </div>
  <input type="submit">
</form>

Étape 2) Créez un tableau JavaScript :

Exemple

Un tableau de tous les pays du monde :

var countries = ["Afghanistan","Albania","Algeria","Andorra","Angola","Anguilla","Antigua &amp; Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia &amp; Herzegovina","Botswana","Brazil","British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central Arfrican Republic","Chad","Chile","China","Colombia","Congo","Cook Islands","Costa Rica","Cote D Ivoire","Croatia","Cuba","Curacao","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Falkland Islands","Faroe Islands","Fiji","Finland","France","French Polynesia","French West Indies","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guam","Guatemala","Guernsey","Guinea","Guinea Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Kosovo","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauro","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","North Korea","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russia","Rwanda","Saint Pierre &amp; Miquelon","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Korea","South Sudan","Spain","Sri Lanka","St Kitts &amp; Nevis","St Lucia","St Vincent","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor L'Este","Togo","Tonga","Trinidad &amp; Tobago","Tunisia","Turkey","Turkmenistan","Turks &amp; Caicos","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States of America","Uruguay","Uzbekistan","Vanuatu","Vatican City","Venezuela","Vietnam","Virgin Islands (US)","Yemen","Zambia","Zimbabwe"];

Étape 3) Ajoutez CSS :

Le conteneur doit avoir un positionnement "relatif".

Exemple

* { box-sizing: border-box; }
body {
  font: 16px Arial;
}
.autocomplete {
  /*the container must be positioned relative:*/
  position: relative;
  display: inline-block;
}
input {
  border: 1px solid transparent;
  background-color: #f1f1f1;
  padding: 10px;
  font-size: 16px;
}
input[type=text] {
  background-color: #f1f1f1;
  width: 100%;
}
input[type=submit] {
  background-color: DodgerBlue;
  color: #fff;
}
.autocomplete-items {
  position: absolute;
  border: 1px solid #d4d4d4;
  border-bottom: none;
  border-top: none;
  z-index: 99;
  /*position the autocomplete items to be the same width as the container:*/
  top: 100%;
  left: 0;
  right: 0;
}
.autocomplete-items div {
  padding: 10px;
  cursor: pointer;
  background-color: #fff;
  border-bottom: 1px solid #d4d4d4;
}
.autocomplete-items div:hover {
  /*when hovering an item:*/
  background-color: #e9e9e9;
}
.autocomplete-active {
  /*when navigating through the items using the arrow keys:*/
  background-color: DodgerBlue !important;
  color: #ffffff;
}


Étape 4) Ajoutez JavaScript :

Exemple

function autocomplete(inp, arr) {
  /*the autocomplete function takes two arguments,
  the text field element and an array of possible autocompleted values:*/
  var currentFocus;
  /*execute a function when someone writes in the text field:*/
  inp.addEventListener("input", function(e) {
      var a, b, i, val = this.value;
      /*close any already open lists of autocompleted values*/
      closeAllLists();
      if (!val) { return false;}
      currentFocus = -1;
      /*create a DIV element that will contain the items (values):*/
      a = document.createElement("DIV");
      a.setAttribute("id", this.id + "autocomplete-list");
      a.setAttribute("class", "autocomplete-items");
      /*append the DIV element as a child of the autocomplete container:*/
      this.parentNode.appendChild(a);
      /*for each item in the array...*/
      for (i = 0; i < arr.length; i++) {
        /*check if the item starts with the same letters as the text field value:*/
        if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {
          /*create a DIV element for each matching element:*/
          b = document.createElement("DIV");
          /*make the matching letters bold:*/
          b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
          b.innerHTML += arr[i].substr(val.length);
          /*insert a input field that will hold the current array item's value:*/
          b.innerHTML += "<input type='hidden' value='" + arr[i] + "'>";
          /*execute a function when someone clicks on the item value (DIV element):*/
              b.addEventListener("click", function(e) {
              /*insert the value for the autocomplete text field:*/
              inp.value = this.getElementsByTagName("input")[0].value;
              /*close the list of autocompleted values,
              (or any other open lists of autocompleted values:*/
              closeAllLists();
          });
          a.appendChild(b);
        }
      }
  });
  /*execute a function presses a key on the keyboard:*/
  inp.addEventListener("keydown", function(e) {
      var x = document.getElementById(this.id + "autocomplete-list");
      if (x) x = x.getElementsByTagName("div");
      if (e.keyCode == 40) {
        /*If the arrow DOWN key is pressed,
        increase the currentFocus variable:*/
        currentFocus++;
        /*and and make the current item more visible:*/
        addActive(x);
      } else if (e.keyCode == 38) { //up
        /*If the arrow UP key is pressed,
        decrease the currentFocus variable:*/
        currentFocus--;
        /*and and make the current item more visible:*/
        addActive(x);
      } else if (e.keyCode == 13) {
        /*If the ENTER key is pressed, prevent the form from being submitted,*/
        e.preventDefault();
        if (currentFocus > -1) {
          /*and simulate a click on the "active" item:*/
          if (x) x[currentFocus].click();
        }
      }
  });
  function addActive(x) {
    /*a function to classify an item as "active":*/
    if (!x) return false;
    /*start by removing the "active" class on all items:*/
    removeActive(x);
    if (currentFocus >= x.length) currentFocus = 0;
    if (currentFocus < 0) currentFocus = (x.length - 1);
    /*add class "autocomplete-active":*/
    x[currentFocus].classList.add("autocomplete-active");
  }
  function removeActive(x) {
    /*a function to remove the "active" class from all autocomplete items:*/
    for (var i = 0; i < x.length; i++) {
      x[i].classList.remove("autocomplete-active");
    }
  }
  function closeAllLists(elmnt) {
    /*close all autocomplete lists in the document,
    except the one passed as an argument:*/
    var x = document.getElementsByClassName("autocomplete-items");
    for (var i = 0; i < x.length; i++) {
      if (elmnt != x[i] && elmnt != inp) {
      x[i].parentNode.removeChild(x[i]);
    }
  }
}
/*execute a function when someone clicks in the document:*/
document.addEventListener("click", function (e) {
    closeAllLists(e.target);
});
}

Étape 5) Lancez l'effet de saisie semi-automatique sur "myInput":

Exemple

Transmettez le tableau des pays comme deuxième paramètre de la fonction de saisie semi-automatique :

<script>
autocomplete(document.getElementById("myInput"), countries);
</script>