Element: beforeinput event - Web APIs | MDN
Syntax
Use the event name in methods like addEventListener(), or set an event handler property.
js
addEventListener("beforeinput", (event) => { })
onbeforeinput = (event) => { }
Event type
An InputEvent. Inherits from UIEvent.
Event properties
This interface inherits properties from its parents, UIEvent and Event.
InputEvent.dataRead only-
Returns a string with the inserted characters. This may be an empty string if the change doesn't insert text (for example, when deleting characters).
InputEvent.dataTransferRead only-
Returns a
DataTransferobject containing information about richtext or plaintext data being added to or removed from editable content. InputEvent.inputTypeRead only-
Returns the type of change for editable content such as, for example, inserting, deleting, or formatting text.
InputEvent.isComposingRead only-
Returns a
Booleanvalue indicating if the event is fired aftercompositionstartand beforecompositionend.
Examples
Feature Detection
The following function returns true if beforeinput, and thus getTargetRanges, is supported.
js
function isBeforeInputEventAvailable() {
return (
window.InputEvent &&
typeof InputEvent.prototype.getTargetRanges === "function"
);
}
Simple logger
This example logs the current value of the element, immediately before replacing that value with the new one applied to the <input> element.
HTML
html
<input placeholder="Enter some text" name="name" />
<p id="values"></p>
JavaScript
js
const input = document.querySelector("input");
const log = document.getElementById("values");
input.addEventListener("beforeinput", updateValue);
function updateValue(e) {
log.textContent = e.target.value;
}
Result
Specifications
| Specification |
|---|
| UI Events # event-type-beforeinput |
Browser compatibility
See also
- Related event:
input