HTMLElement : évènement change

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

L'évènement change est déclenché sur les éléments <input>, <select> et <textarea> lorsque la personne modifie la valeur de l'élément. À la différence de l'évènement input, l'évènement change n'est pas nécessairement déclenché à chaque modification unitaire de la valeur de l'élément.

Selon le type d'élément modifié et l'interaction avec l'élément, l'évènement change pourra se déclencher à un moment différent :

La spécification HTML liste les types d'éléments <input> qui devraient déclencher l'évènement change.

Syntaxe

On utilisera le nom de l'évènement dans des méthodes telles que addEventListener() ou alors on utilisera une propriété globale de gestion d'évènements telle que onchange.

js
addEventListener("change", (event) => {});

onchange = (event) => {};

Type d'évènement

Un évènement générique de type Event.

Exemples

Avec un élément <select>

HTML

html
<label>
  Choisissez un parfum de glace :
  <select class="ice-cream" name="ice-cream">
    <option value="">Choisir parmi…</option>
    <option value="chocolat">chocolat</option>
    <option value="sardine">sardine</option>
    <option value="vanille">vanille</option>
  </select>
</label>

<div class="result"></div>

JavaScript

js
const selectElement = document.querySelector(".ice-cream");
const result = document.querySelector(".result");

selectElement.addEventListener("change", (event) => {
  result.textContent = `Vous avez choisi ${event.target.value}`;
});

Résultat

Avec un champ texte

Pour certains éléments, dont <input type="text">, l'évènement change ne se déclenche pas tant que le contrôle n'a pas perdu le focus. Essayez de saisir quelque chose dans le champ ci-après, puis cliquez autre part afin de déclencher l'évènement.

HTML

html
<input placeholder="Veuillez saisir un texte" name="name" />
<p id="log"></p>

JavaScript

js
const input = document.querySelector("input");
const log = document.getElementById("log");

input.addEventListener("change", updateValue);

function updateValue(e) {
  log.textContent = e.target.value;
}

Résultat

Spécifications

Specification
HTML Standard
# event-change
HTML Standard
# handler-onchange

Compatibilité des navigateurs

BCD tables only load in the browser