NSI (première) · Chapitre 10 · Exercice de TD
Modifier le gestionnaire pour que le compteur décroisse, et qu'il…
Interagir sur le Web · Événements et état de la page · niveau 2
Énoncé
Modifier le gestionnaire pour que le compteur décroisse, et qu'il refuse de descendre sous zéro.
Corrigé
const bouton = document.getElementById("compter");
const affichage = document.getElementById("total");
let compteur = 0;
bouton.addEventListener("click", function () {
if (compteur > 0) {
compteur = compteur - 1;
affichage.textContent = compteur;
}
});
Le test est placé avant la décrémentation : on refuse le coup, on ne le répare pas après coup. Écrire l'inverse — décrémenter, puis if (compteur < 0) { compteur = 0; } — donne le même affichage, mais laisse la variable passer par ; si un autre morceau de code lit compteur entre-temps, il lit une valeur interdite.
Une variante plus honnête envers l'utilisateur : au lieu de ne rien faire, désactiver le bouton quand il n'y a plus rien à retirer.
bouton.addEventListener("click", function () {
compteur = compteur - 1;
affichage.textContent = compteur;
bouton.disabled = (compteur === 0);
});
Il faut alors penser à bouton.disabled = true; au chargement, puisque le compteur démarre à zéro.
Contrôle : avec la première version, cinq clics sur un compteur à affichent , , , , . Aucun clic n'échoue, aucun ne descend sous zéro.
Piège : croire que bouton.disabled = true protège quoi que ce soit. C'est un confort d'interface : un bouton grisé se réactive en trois secondes dans les outils de développement. Le test dans le gestionnaire, lui, est la vraie garantie — et si le compteur avait un sens côté serveur, il faudrait l'y vérifier aussi.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 16 autres exercices corrigés dans ce chapitre, et 20 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.