The onchange property of the GlobalEventHandlers mixin is an EventHandler for processing change events.

change events fire when the user commits a value change to a form control. This may be done, for example, by clicking outside of the control or by using the Tab key to switch to a different control.

Note: Unlike oninput, the onchange event handler is not necessarily called for each alteration to an element's value.


target.onchange = functionRef;

functionRef is a function name or a function expression. The function receives an Event object as its sole argument.


This example logs the number of characters in an <input> element, every time you modify its contents and then change focus away from it.


<input type="text" placeholder="Type something here, then click outside of the field." size="50">
<p id="log"></p>


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

input.onchange = handleChange;

function handleChange(e) {
  log.textContent = `The field's value is
      ${} character(s) long.`;



Specification Status Comment
HTML Living Standard
The definition of 'onchange' in that specification.
Living Standard

Browser compatibility

ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
onchangeChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 9Opera Full support 9Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0


Full support
Full support

See also