Un petit « snippet » de code qui peut vous être bien utile lorsque vous voulez interdire la saisie d’un caractère retour chariot dans un champ texte (TextArea par exemple).
Mon cas d’utilisation était un écran d’une interface mobile. Celle-ci est réduite en largeur et j’affiche un champ texte sur plusieurs lignes, pour que l’utilisateur voit ce qu’il tape. Ce qu’il doit taper est une URL, et je veux que lorsqu’il appuie sur la touche entrée de son clavier, la saisie soit validée mais que le caractère « \n » lui-même ne soit pas entré.
La propriété « restrict » permettant de donner une expression régulière à valider prend en compte tous les caractère sauf le retour chariot, il vous faut donc une autre solution.
Pour cela, il suffit de s’abonner à l’évènement « textInput » qui peut être stoppé grâce à la méthode preventDefault:
private function textArea_textInput(event:TextEvent):void {
if (event.text == "\n") {
event.preventDefault();
}
}
Avec ce bout de code, vous allez empêcher la saisie mais si l’utilisateur effectue un copier-coller d’un contenu ayant un retour chariot, celui-ci sera accepté. Pour éviter cela, il suffit de s’abonner sur l’évènement « change » et de remplacer les retours chariot éventuels:
private function textArea_change(event:Event):void {
textArea.text = textArea.text.replace(/\\n|\\r/ig, "");
}
