[JS]Insertion automatique de caractère

NoSmoking

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ésignationOuvrantFermant
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.

Ressources