Créer un compteur de caractères dans un input

Que ce soit pour le choix d'un pseudo ou pour tout autre donnée importante, vous avez peut-être besoin de limiter le nombre de caractère que vos utilisateurs peuvent entrer dans un champ de formulaire. Voyons ensemble dans cet article comment réaliser ceci de manière simple et efficace.
•
Mis à jour le 14 août 2026
•
2 min de lecture
Believemy logo
Créer un compteur de caractères dans un input

Que ce soit pour le choix d'un pseudo ou pour tout autre donnée importante, vous avez peut-être besoin de limiter le nombre de caractère que vos utilisateurs peuvent entrer dans un champ de formulaire. Voyons ensemble dans cet article comment réaliser ceci de manière simple et efficace.

Image

 

1ère étape

Le code HTML.

HTML
<label>
  <input type="text" placeholder="Titre" maxlength=20>
  <span></span>
</label>

Nous disposons seulement un label englobant une balise input et un span.

 

2ème étape

Il est maintenant grand temps de styliser le label et l'input.

CSS
label {
  position: relative;
}

input {
  font-size: 1.4rem;
  padding: .8rem 2rem .8rem 0;
  background: transparent;
  color: #F5F8FF;
  border-bottom: 1.5px solid rgba(245, 248, 255, .4);
  transition: all .4s;
  outline: none;
}

 

3ème étape

Occupons-nous du style de l'input au focus et du placeholder.

CSS
input:focus {
  border-color: #FF4754;
}

input::placeholder {
  color: rgba(245, 248, 255, .4);
}

 

4ème étape

Stylisons le compteur (span).

CSS
label span {
  position: absolute;
  right: 0;
  top: 50%;

  transform: translateY(-50%);
  width: 1.6rem;
  height: 1.6rem;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: .8rem;
  color: #F5F8FF;
  background: rgba(245, 248, 255, .2);
  border-radius: 5px;
}

Dans cette étape, nous plaçons notre compteur en position absolute et nous le positionnons parfaitement au centre grâce à la propriété transform, qui va pousser le compteur vers le haut en prenant la moitié de sa taille (50%).

Enfin nous utilisons flexbox (display: flex) pour centrer horizontalement et verticalement le nombre de caractères à afficher.

 

5ème étape

Récuperons enfin les éléments nécessaires à notre compteur avec JavaScript.

JAVASCRIPT
const input = document.querySelector('input');
const counter = document.querySelector('label span');
const maxLength = input.getAttribute('maxlength');

Nous récupérons la valeur de l’attribut maxlength pour l’afficher dans la balise span.

 

6ème étape

Il ne reste plus qu'à détecter un changement dans le nombre de caractères.

JAVASCRIPT
input.addEventListener('input', event => {
  const valueLength = event.target.value.length;
  const leftCharLength = maxLength - valueLength;

  if (leftCharLength < 0) return;
  counter.innerText = leftCharLength;
});

Pour s’assurer de ne pas afficher un nombre de caractères négatifs, nous terminons la fonction avec un simple return.

Catégorie : Développeurs

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.

Believemy logo
Commentaires (0)

Vous devez être connecté pour commenter cet article : se connecter ou s'inscrire.

À lire ensuite

Le sélecteur out-of-range (pour styliser quand une valeur n'est pas correcte)

Vous avez toujours voulu vérifier dynamiquement les valeurs entrées par vos utilisateurs dans un champ de formulaire sans utiliser JavaScript ? Voici comment modifier le style d'un champ quand un nombre entré par l'utilisateur est invalide !

10 octobre 2021

Afficher / Cacher sur un champ de mot de passe

Le formulaire de connexion est le formulaire que nous retrouvons le plus sur les sites internet. Créer un formulaire de connexion qui donne le choix à l'utilisateur d'afficher ou de cacher son mot de passe est donc un élément qui améliorera considérablement la vie de vos utilisateurs. Voyons dans cet article comment faire !

13 novembre 2020

Détecter la touche majuscule sur un formulaire

Que ce soit pour vos formulaires d'inscription ou de connexion, ou même sur vos pages de changement de mots de passe, prévenir votre utilisateur lorsqu'il utilise la touche majuscule de son clavier améliorera considérablement son expérience sur votre site. Découvrons dans cet article comment réaliser ceci très facilement !

26 novembre 2020

Créer un compteur en live d'abonnés Instagram

Voici comment créer un compteur en live d'abonnés Instagram, qui s'actualise automatiquement toutes les secondes ! Très utile pour vos sites internet ! On utilise pour ça la toute dernière nouveauté de JavaScript : fetch !

3 juillet 2020

Afficher de façon progressive un nombre sur un compteur

Lorsque nous avons des données chiffrées à afficher, nous présentons souvent ces dernières de façon fade et sans animation. Et pourtant : créer une animation qui affiche progressivement le nombre final est très simple à réaliser et vous permettra d'égayer vos nombres ! Voyons comment faire dans cet article.

7 décembre 2020

Créer un texte apparaissant au survol

Nous avons déjà vu comment créer un élément qui s'affiche au survol de la souris sur une image, mais voici dans cet article comment afficher tout un tas d'informations et ce de manière très fluide en passant la souris sur un élément !

10 juillet 2020

Créer un formulaire aux labels dynamiques

Plus un formulaire est moderne, plus il est engageant. Voyons dans cet article comment réaliser un formulaire aux labels dynamiques qui permettra d'augmenter l'engagement de vos formulaires et qui donnera envie à vos utilisateurs de le remplir.

10 juin 2020

Créer un effet de rotation du texte

Pour rendre votre site plus attractif, vous pouvait ajouter cet effet sympa, qui permettra d'afficher plusieurs mots qui vont se succéder avec un effet de suppression et de réécriture en boucle. Cet effet pourra être placé à la fin d'une phrase comme dans un texte.

19 novembre 2020

Devenez le solopreneur que vous rêvez d'être.

Premier projet, reconversion, lancement de business : accédez à nos formations, pratiquez sur des cas concrets et avancez avec un accompagnement clair.