Aller au contenu

Numérique et sciences informatiques (spécialité) · Première

Événements et JavaScript : cours de Première NSI

Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur

L'essentiel

  • Une page écrite seulement en HTML et CSS reste figée ; JavaScript la rend interactive en exécutant du code dans le navigateur, côté client 3.
  • Un événement (clic, saisie, envoi de formulaire) est un signal émis par le navigateur ; on y associe une fonction, le gestionnaire, qui s'exécute à chaque fois qu'il se produit.
  • Le script réagit en lisant et en modifiant le DOM, l'interface fournie par le navigateur pour accéder au document HTML 3.
  • Le code se place dans un attribut d'événement comme onclick, entre balises script, ou dans un fichier à part 13.
  • Méthode : repérer l'élément, choisir l'événement, écrire la fonction, la relier à l'élément, tester dans le navigateur.

Pourquoi une page web a besoin de JavaScript

Jusqu'ici, tu as construit des pages avec HTML, qui décrit le contenu, et CSS, qui décrit la présentation. Une telle page s'affiche, mais elle ne réagit à rien : tu peux lire le texte, suivre un lien, et c'est tout. Pour qu'un bouton affiche un message, qu'un champ de formulaire signale une erreur ou qu'un menu se déplie, il faut un programme qui s'exécute pendant que la page est ouverte.

C'est le rôle de JavaScript. Ce langage de scripts sert surtout dans les pages web interactives, et avec HTML et CSS il fait partie du socle des langages du développement web 3. La majorité des navigateurs embarquent un moteur JavaScript chargé d'interpréter ce code 3. Ton programme n'a donc pas besoin d'être installé : le navigateur de la personne qui visite la page le lit et l'exécute.

Cette exécution se fait côté client, c'est-à-dire dans le navigateur de l'utilisateur et non sur le serveur. Le document de ressources d'Éduscol cite des usages de ce côté client : des info-bulles contextuelles qui apparaissent, des animations 1. Dans ce cours, nous restons côté client ; la communication avec le serveur est l'objet du chapitre suivant sur le protocole HTTP.

Un peu d'histoire et ce que JavaScript n'est pas

JavaScript a été créé en 1995 par Brendan Eich, alors employé de Netscape Communication Corporation, principal concurrent d'Internet Explorer à cette époque 1. Le langage a ensuite été confié à l'ECMA, l'association européenne des fabricants d'ordinateurs 1. Quelques jours avant la sortie, Netscape a changé le nom LiveScript en JavaScript, et le 4 décembre 1995 Netscape et Sun Microsystems ont annoncé ensemble sa sortie dans un communiqué de presse 3.

Java et JavaScript : deux langages différents
CritèreJavaJavaScript
TypageFortement typéTypage dynamique
ExécutionPrécompiléInterprété
Orientation objetOuiOui
Java et JavaScript : deux langages différents · D'après Éduscol : les deux noms se ressemblent, les langages non.

Où écrire le code JavaScript

Dans une page HTML, les instructions d'un langage de script, JavaScript compris, doivent être placées entre des balises prévues pour cela 1. Plusieurs façons d'intégrer JavaScript à une page existent 3. Voici celles que nous utiliserons.

La notion d'événement

Cette façon de programmer s'appelle la programmation événementielle. Dans un programme classique en Python, les instructions s'enchaînent de la première à la dernière. Ici, le déroulement dépend de l'utilisateur : le code reste en attente et ne se déclenche que si l'événement associé arrive. Si personne ne clique, la fonction liée au clic ne s'exécute jamais.

Quelques événements courants

Événement Se produit quand… Exemple d'usage
click l'utilisateur clique sur un élément ouvrir un menu, valider
input le contenu d'un champ change compter les caractères saisis
change un champ perd le focus après modification vérifier une valeur
submit un formulaire est envoyé contrôler les données avant envoi
keydown une touche est enfoncée raccourci clavier
mouseover le pointeur arrive sur l'élément afficher une info-bulle
load la page a fini de se charger initialiser l'affichage
Du clic à la page modifiéeÉtapes successives : l'utilisateur agit, le navigateur détecte l'événement, le gestionnaire s'exécute, le DOM est modifié, l'affichage se met à jour.1ActionL'utilisateur clique ou saisit du texte.2DétectionLe navigateur émet l'événement.3GestionnaireLa fonction associée s'exécute.4DOMLe script modifie des éléments.5AffichageLa page se met à jour.
  1. ActionL'utilisateur clique ou saisit du texte.
  2. DétectionLe navigateur émet l'événement.
  3. GestionnaireLa fonction associée s'exécute.
  4. DOMLe script modifie des éléments.
  5. AffichageLa page se met à jour.
Du clic à la page modifiée · Le déroulement d'un événement.

Les gestionnaires d'événements

Nous avons déjà vu une première manière de relier un événement à du code : l'attribut onclick placé dans la balise 3. Elle convient pour une instruction très courte, mais elle mélange HTML et JavaScript. La méthode usuelle consiste à écrire une fonction, puis à la relier à l'élément depuis le script avec addEventListener.

Le gestionnaire reçoit en paramètre un objet décrivant l'événement. Il donne par exemple la touche enfoncée ou l'élément précis qui a déclenché l'action. On le nomme le plus souvent event (ou e), et il sert surtout à connaître l'élément concerné avec event.target.

Le DOM : lire et modifier la page

Pour réagir, il ne suffit pas de savoir quand agir : il faut aussi agir sur la page. Pour cela, JavaScript passe par l'interface Document Object Model, le DOM, que le navigateur met à sa disposition pour dialoguer avec le document HTML 3. On parle parfois alors de HTML dynamique, ou DHTML 3.

Variables, conditions et fonctions dans un gestionnaire

Le code d'un gestionnaire utilise les mêmes briques que celles que tu connais en Python, avec une syntaxe un peu différente : variables, tests, boucles, fonctions. Comme JavaScript est à typage dynamique 1, on déclare une variable avec let sans préciser son type.

De Python à JavaScript

Idée Python JavaScript
Affectation n = 0 let n = 0;
Test if n > 5: if (n > 5) { … }
Sinon else: else { … }
Fonction def f(x): function f(x) { … }
Affichage print(n) console.log(n)
Égalité == ===

Contrôler la saisie dans un formulaire

Un usage fréquent de JavaScript est le contrôle des données saisies dans les formulaires HTML 3. L'idée est de prévenir l'utilisateur tout de suite, sans attendre une réponse du serveur. Les méthodes GET et POST viendront ensuite, mais le contrôle côté client fait déjà partie des interactions de ce chapitre.

Méthode générale et erreurs fréquentes

Exercices corrigés

Exercice 1 Un bouton qui salue

★☆☆Environ 10 min

Le HTML contient un bouton d'identifiant go (texte « Valider ») et un paragraphe vide d'identifiant sortie.

Écris le code JavaScript qui, au clic sur le bouton, remplace le contenu du paragraphe par le texte « Bien reçu ».

Indice 1

Commence par récupérer le bouton avec son identifiant.

Indice 2

Pense à donner la fonction à addEventListener sans parenthèses.

Voir la correction pas à pas
  1. On récupère le bouton : let b = document.getElementById('go');.

  2. On écrit la fonction qui modifie le paragraphe : function repondre() { document.getElementById('sortie').textContent = 'Bien reçu'; }.

  3. On relie la fonction au clic : b.addEventListener('click', repondre);, sans parenthèses après repondre.

  4. On teste : à chaque clic, le paragraphe affiche « Bien reçu ».

Les ingrédients sont tous là : un élément (go), un type d'événement (click) et une fonction (repondre).

Exercice 2 Un compteur qui avance de 2

★★☆Environ 15 min

Une page contient un bouton d'identifiant plus et un élément d'identifiant total qui affiche d'abord 0. Chaque clic doit ajouter 2 à un compteur et afficher la nouvelle valeur.

  1. Écris le script.
  2. Quelle valeur est affichée après 7 clics ?
Indice 1

Le compteur doit être déclaré en dehors de la fonction.

Indice 2

Après chaque clic, la valeur augmente de 2 : calcule 7 fois 2.

Voir la correction pas à pas
  1. On déclare la variable hors du gestionnaire : let compteur = 0;.

  2. On écrit le gestionnaire : document.getElementById('plus').addEventListener('click', function () { compteur = compteur + 2; document.getElementById('total').textContent = compteur; });.

  3. À chaque clic, le compteur gagne 2 : après 7 clics, il vaut 7×2=147 \times 2 = 14.

  4. On vérifie le cas de départ : avant tout clic, l'affichage reste 0.

Après 7 clics, la page affiche 14. Le compteur étant déclaré à l'extérieur, il garde sa valeur d'un clic à l'autre.

Exercice 3 Contrôler un code postal

★★★Environ 20 min

Un formulaire contient un champ texte d'identifiant cp, un bouton d'identifiant ok et un paragraphe d'identifiant info. Au clic, le script doit écrire « Valide » si le texte saisi contient exactement 5 caractères, sinon « Invalide : 5 chiffres attendus ».

  1. Écris le script.
  2. Que s'affiche-t-il pour la saisie 7500 ? Pour 75001 ?
  3. Quelle limite a ce contrôle, si on voulait aussi n'accepter que des chiffres ?
Indice 1

La longueur d'un texte s'obtient avec la propriété length.

Indice 2

Utilise === pour comparer la longueur à 5.

Voir la correction pas à pas
  1. On récupère les éléments : le champ, le bouton et le paragraphe.

  2. On écrit le gestionnaire : document.getElementById('ok').addEventListener('click', function () { let saisie = document.getElementById('cp').value; if (saisie.length === 5) { document.getElementById('info').textContent = 'Valide'; } else { document.getElementById('info').textContent = 'Invalide : 5 chiffres attendus'; } });.

  3. Pour 7500, la longueur est 4, différente de 5 : le message est « Invalide : 5 chiffres attendus ».

  4. Pour 75001, la longueur est 5 : le message est « Valide ».

  5. Limite : abcde a aussi 5 caractères et serait jugé valide. Il faudrait vérifier que chaque caractère est un chiffre, par exemple avec une boucle ou une expression régulière.

Le test porte sur la longueur seulement. Un bon contrôle combine plusieurs conditions, et le serveur doit de toute façon revérifier la donnée.

Quiz

8 questions · correction immédiate · ton score reste sur ton appareil.

  1. Que signifie l'événement click dans une page web ?

  2. Quelle différence entre Java et JavaScript ?

  3. Dans b.addEventListener('click', saluer()), quel est le problème ?

  4. Quelles propositions sont vraies à propos du DOM ?

    Plusieurs réponses possibles.

  5. Une page statique peut devenir interactive grâce à JavaScript.

  6. En quelle année JavaScript a-t-il été créé ?

  7. Une variable compteur est déclarée à l'intérieur de la fonction gestionnaire d'un bouton, avec let compteur = 0;. Que se passe-t-il à chaque clic ?

  8. La valeur lue dans un champ de formulaire est un nombre quand l'utilisateur tape des chiffres.

Les questions qu'on se pose

Quelle différence entre onclick dans le HTML et addEventListener ?

Les deux relient un code à un clic. L'attribut onclick s'écrit dans la balise et exécute le code au clic 3 ; il convient pour une instruction très courte. addEventListener se place dans le script : il sépare le HTML du JavaScript, permet d'associer plusieurs gestionnaires au même événement et rend le code plus lisible. Dès que le code dépasse une ligne, préfère addEventListener.

Pourquoi mon bouton ne fait rien alors que je n'ai aucune erreur visible ?

Ouvre la console du navigateur. Les causes les plus fréquentes : un identifiant mal recopié (getElementById renvoie alors null), un script placé avant l'élément qu'il cherche, un nom d'événement mal orthographié, ou des parenthèses après le nom de la fonction dans addEventListener. Ajoute un console.log dans la fonction pour savoir si elle est appelée.

À quoi sert JavaScript, concrètement, sur un site ?

Il sert à rendre la page interactive : montrer ou cacher des éléments, contrôler les données d'un formulaire, réaliser des animations ou des transitions, manipuler des données réactives 3. Il peut aussi faire apparaître des info-bulles contextuelles 1.

Le contrôle d'un formulaire en JavaScript suffit-il pour être en sécurité ?

Non. Le contrôle côté client prévient l'utilisateur rapidement, mais il se contourne : le code s'exécute chez l'utilisateur, qui peut le modifier ou envoyer une requête sans passer par ta page. Le serveur doit revérifier les données. C'est l'un des thèmes des chapitres suivants, sur HTTP et les formulaires.

Dois-je connaître tous les événements par cœur ?

Non. Il faut maîtriser la logique (élément, type d'événement, fonction) et connaître les plus courants : click, input, change, submit, keydown. Au contrôle, l'énoncé fournit en général la syntaxe ; ce qu'on attend de toi, c'est de savoir relier un événement à un comportement et de modifier le DOM correctement.

Sources

  1. Document ressource Éduscol — Interactions avec le Web et JavaScript, Éduscol. Consulté le 6 novembre 2026.
  2. Ressource pédagogique Éduscol — Événements et DOM, Éduscol. Consulté le 6 novembre 2026.
  3. JavaScript, Wikipédia. Consulté le 6 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page