[JS]Insertion automatique de caractère
On peut être amené à vouloir, lors d'une saisie, qu'un « caractère fermant » s'ajoute automatiquement, cela peut être notamment le cas pour les caractères suivants :
Désignation | Ouvrant | Fermant |
chevron simple | < | > |
chevron double | « | » |
guillemet double | " | " |
crochet | [ | ] |
parenthèse | ( | ) |
accolade | { | } |
...cette liste n'est, bien sûr, pas exhaustive.
Principe d'insertion
L'insertion de ce « caractère fermant » supplémentaire est réalisée sur base d'une fonction similaire à celle de l'ajout de balise début/fin autour d'un texte.
Différentes approches
Plusieurs gestionnaires d'évènements sont à notre disposition.
Essayez la saisie d'un « caractère ouvrant » après avoir sélectionné du texte.
input
- La moindre saisie supprime la sélection éventuelle en cours
- Gère les caractères étendues comme « Alt + 0171
- Les « coller » ne sont pas pris en compte
keydown
- Ne supprime pas la sélection éventuelle en cours
- Ne permet pas de gérer les caractères étendues comme « (Alt + 0171)
- Les « coller » ne sont pas pris en compte
beforeinput
- Met tout le monde d'accord
Il est à noter que dans tous les cas les fonctions natives undo/redo ne prennent pas en compte ces ajouts.