--- 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 :
<input type="radio">
et <input type="checkbox">
(case à cocher).<input type="date">
, en sélectionnant un fichier d'un "file picker" (sélecteur de fichier) pour <input type="file">
, etc.).<input type="text">
).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
.
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.
<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>
body { display: grid; grid-template-areas: "select result"; } select { grid-area: select; } .result { grid-area: result; }
const selectElement = document.querySelector('.ice-cream'); selectElement.addEventListener('change', (event) => { const result = document.querySelector('.result'); result.textContent = `You like ${event.target.value}`; });
{{ EmbedLiveSample('Lélément_<select>', '100%', '75px') }}
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.
<input placeholder="Enter some text" name="name"/> <p id="log"></p>
const input = document.querySelector('input'); const log = document.getElementById('log'); input.addEventListener('change', updateValue); function updateValue(e) { log.textContent = e.target.value; }
{{ EmbedLiveSample('Lélément_dentrée_de_texte', '100%', '75px') }}
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 |
{{Compat("api.GlobalEventHandlers.onchange")}}
Cet événement est aussi déclenché dans plusieurs API non-standard: