Element : évènement beforeinput
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2021.
L'évènement DOM beforeinput se déclenche lorsque la valeur d'un élément <input> ou <textarea> est sur le point d'être modifiée. Mais contrairement à l'évènement input, il ne se déclenche pas sur l'élément <select>. L'évènement s'applique également aux éléments avec contenteditable activé, et à tout élément lorsque designMode est activé.
Cela permet aux applications web de remplacer le comportement de modification du texte avant que le navigateur ne modifie l'arbre DOM, et offre un meilleur contrôle sur les évènements d'entrée pour améliorer les performances.
Dans le cas de contenteditable et de designMode, la cible de l'évènement est l'hôte d'édition. Si ces propriétés s'appliquent à plusieurs éléments, l'hôte d'édition est l'ancêtre le plus proche dont le parent n'est pas éditable.
Note :
Toutes les modifications effectuées par l'utilisateur·ice ne déclenchent pas nécessairement l'évènement beforeinput. De plus, l'évènement peut se déclencher mais être non annulable. Cela peut se produire lorsque la modification est effectuée par la saisie semi-automatique, en acceptant une correction d'un correcteur orthographique, par le remplissage automatique d'un gestionnaire de mots de passe, par un IME, ou d'autres manières. Les détails varient selon le navigateur et le système d'exploitation. Pour remplacer le comportement de modification dans toutes les situations, le code doit gérer l'évènement input et éventuellement annuler toute modification qui n'a pas été traitée par le gestionnaire beforeinput. Voir les bogues 1673558 (angl.) et 1763669 (angl.).
Syntaxe
Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'évènement.
addEventListener("beforeinput", (event) => { })
onbeforeinput = (event) => { }
Type d'évènement
Un objet InputEvent. Hérite de UIEvent.
Propriétés de l'évènement
Cette interface hérite des propriétés de ses parents, UIEvent et Event.
InputEvent.dataLecture seule-
Retourne une chaînes de caractères contenant les caractères insérés. Il peut s'agir d'une chaîne de caractères vide si la modification n'insère pas de texte (par exemple, lors de la suppression de caractères).
InputEvent.dataTransferLecture seule-
Retourne un objet
DataTransfercontenant des informations sur les données en texte enrichi ou en texte brut ajoutées ou supprimées du contenu modifiable. InputEvent.inputTypeLecture seule-
Retourne le type de modification apportée au contenu modifiable, comme par exemple l'insertion, la suppression ou la mise en forme de texte.
InputEvent.isComposingLecture seule-
Retourne une valeur
Booleanindiquant si l'évènement est déclenché aprèscompositionstartet avantcompositionend.
Exemples
>Détecter de fonctionnalité
La fonction suivante retourne vrai si beforeinput et getTargetRanges, sont pris en charge.
function isBeforeInputEventAvailable() {
return (
window.InputEvent &&
typeof InputEvent.prototype.getTargetRanges === "function"
);
}
Journalisation simple
Cet exemple enregistre la valeur actuelle de l'élément, juste avant de remplacer cette valeur par la nouvelle valeur appliquée à l'élément HTML <input>.
HTML
<input placeholder="Entrer du texte" name="nom" />
<p id="valeurs"></p>
JavaScript
const entree = document.querySelector("input");
const journal = document.getElementById("valeurs");
entree.addEventListener("beforeinput", actualiserValeur);
function actualiserValeur(e) {
journal.textContent = e.target.value;
}
Résultat
Spécifications
| Spécification |
|---|
| UI Events> # event-type-beforeinput> |
Compatibilité des navigateurs
Voir aussi
- Évènement associé :
input