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.
| Critère | Java | JavaScript |
|---|---|---|
| Typage | Fortement typé | Typage dynamique |
| Exécution | Précompilé | Interprété |
| Orientation objet | Oui | Oui |
Où écrire le code JavaScript
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 |
- ActionL'utilisateur clique ou saisit du texte.
- DétectionLe navigateur émet l'événement.
- GestionnaireLa fonction associée s'exécute.
- DOMLe script modifie des éléments.
- AffichageLa page se met à jour.
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
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
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
On récupère le bouton :
let b = document.getElementById('go');.On écrit la fonction qui modifie le paragraphe :
function repondre() { document.getElementById('sortie').textContent = 'Bien reçu'; }.On relie la fonction au clic :
b.addEventListener('click', repondre);, sans parenthèses aprèsrepondre.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
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.
- Écris le script.
- 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
On déclare la variable hors du gestionnaire :
let compteur = 0;.On écrit le gestionnaire :
document.getElementById('plus').addEventListener('click', function () { compteur = compteur + 2; document.getElementById('total').textContent = compteur; });.À chaque clic, le compteur gagne 2 : après 7 clics, il vaut .
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
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 ».
- Écris le script.
- Que s'affiche-t-il pour la saisie
7500? Pour75001? - 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
On récupère les éléments : le champ, le bouton et le paragraphe.
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'; } });.Pour
7500, la longueur est 4, différente de 5 : le message est « Invalide : 5 chiffres attendus ».Pour
75001, la longueur est 5 : le message est « Valide ».Limite :
abcdea 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.
-
clickse produit quand l'utilisateur clique sur un élément. La fin du chargement correspond àload, et l'envoi d'un formulaire àsubmit: ce sont des erreurs tentantes car tous ces événements déclenchent du code, mais ils ont des causes différentes. -
Les parenthèses déclenchent l'appel tout de suite : c'est le résultat de la fonction qui est transmis, et non la fonction. Il faut écrire
saluerseul. Il est tentant de croire que les parenthèses sont toujours obligatoires pour une fonction, mais ici on veut seulement la désigner. -
Le DOM est l'interface que le navigateur offre à JavaScript pour dialoguer avec le document HTML 3. Les balises y sont des objets que l'on peut lire et modifier. La proposition 3 est fausse : le DOM n'est pas un langage, c'est une interface que le langage utilise.
-
Un script JavaScript peut apporter une touche interactive ou dynamique à une page qui, sans cela, serait statique et figée 3. Croire que HTML et CSS suffisent pour réagir aux clics est l'erreur fréquente : ils décrivent contenu et présentation, pas le comportement.
-
Une variable locale disparaît à la fin de l'appel et est recréée au suivant. Pour conserver la valeur, on la déclare à l'extérieur du gestionnaire. La première réponse est tentante car elle correspond à l'effet voulu, pas au comportement réel du code.
-
La valeur lue dans un champ est toujours du texte. Sans conversion avec
Number, l'addition de'3'et'4'donne'34'et non 7.
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 ?
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
- Document ressource Éduscol — Interactions avec le Web et JavaScript, Éduscol. Consulté le 6 novembre 2026.
- Ressource pédagogique Éduscol — Événements et DOM, Éduscol. Consulté le 6 novembre 2026.
- 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.