--- title: change slug: Web/API/HTMLElement/change_event tags: - Change - DOM - Event - HTML - Reference - Web - Élément HTML translation_of: Web/API/HTMLElement/change_event ---

{{APIRef}}

L'événement change est déclenché pour les éléments {{HTMLElement("input")}} (entrée), {{HTMLElement("select")}} (sélection) et {{HTMLElement("textarea")}} (zone de texte) lorsqu'un changement de leur valeur est réalisé par l'utilisateur. Contrairement à l'événement {{event("input")}}, change n'est pas nécessairement déclenché pour chaque changement de valeur.

Propagation Oui
Annulable Non
Interface {{domxref("Event")}}
Gestionnaire d'événements {{domxref("GlobalEventHandlers/onchange", "onchange")}}

En fonction du type d'élément de formulaire modifié et de la manière dont l'utilisateur interagit avec cet élément, l'événement change se déclenche à un moment différent :

Les différents navigateurs ne sont pas toujours d'accord sur le fait que l'événement change doit être déclenché pour certains types d'interactions. Par exemple, la navigation avec le clavier dans les éléments {{HTMLElement("select")}} ne déclenche jamais l'événement dans Gecko jusqu'à ce que l'utilisateur appuie sur la touche Entrée ou déplace le focus en dehors du <select> (voir {{bug("126379")}}).

La spécification HTML répertorie les types <input> qui doivent déclencher l'événement change.

Exemples

L'élément <select>

Le code suivant gère l'événement change sur {{HTMLElement("select")}} en appellant la fonction changeEventHandler() dans l'attribut onchange. Il lit la valeur de la cible de l'événement et la montre dans une alerte.

HTML

<label>Choose an ice cream flavor:
  <select class="ice-cream" name="ice-cream">
    <option value="">Select One …</option>
    <option value="chocolate">Chocolate</option>
    <option value="sardine">Sardine</option>
    <option value="vanilla">Vanilla</option>
  </select>
</label>

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

Javascript

const selectElement = document.querySelector('.ice-cream');

selectElement.addEventListener('change', (event) => {
  const result = document.querySelector('.result');
  result.textContent = `You like ${event.target.value}`;
});

Résultat

{{ EmbedLiveSample('Lélément_<select>', '100%', '75px') }}

L'élément d'entrée de texte

Pour certains éléments, notamment <input type="text">, l'événement de changement ne se déclenche pas tant que le contrôle ne perd pas le focus. Essayez de saisir quelque chose dans le champ ci-dessous, puis cliquez ailleurs pour déclencher l'événement.

HTML

<input placeholder="Enter some text" name="name"/>
<p id="log"></p>

JavaScript

const input = document.querySelector('input');
const log = document.getElementById('log');

input.addEventListener('change', updateValue);

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

Résultat

{{ EmbedLiveSample('Lélément_dentrée_de_texte', '100%', '75px') }}

Spécifications

Spécification Statut Commentaire
{{SpecName("HTML WHATWG", "indices.html#event-change", "change")}} {{Spec2("HTML WHATWG")}}
{{SpecName("HTML5 W3C", "webappapis.html#handler-onchange", "change")}} {{Spec2("HTML5 W3C")}}
{{SpecName("DOM2 Events", "#Events-eventgroupings-htmlevents", "change")}} {{Spec2("DOM2 Events")}} Définition initiale

Compatibilités navigateurs

{{Compat("api.GlobalEventHandlers.onchange")}}

Voir aussi

Cet événement est aussi déclenché dans plusieurs API non-standard: