Je souhaite utiliser une directive pour transformer toutes les données d'entrée en majuscules. Pour cela, je crée cette directive personnalisée:Directive pour les champs de saisie majuscules
@Directive({
selector: '[appToUpperCase]'
})
export class ToUpperCaseDirective {
constructor() {}
@HostListener('input', ['$event']) onKeyUp(event) {
event.target['value'] = event.target['value'].toUpperCase();
}
}
Et je l'utilise comme ça:
<form [formGroup]="formGroup" appToUpperCase>
Il fonctionne presque bon exepté que quand j'entrer du texte dans mon champ, le boîtier supérieur de transformation est permert, mais la mise au point est réglée à la fin du champ ... Donc, quand je modifie une entrée pré-remplie, si je veux modifier le début des données, je dois mettre le focus au bon endroit après chaque événement KeyUp. ..
Comment puis-je résoudre ce problème?
Le problème est que CSS affiche les données en majuscules mais ne transforme pas la valeur. J'ai beaucoup de pages avec beaucoup de formes ainsi je veux un moyen simple de transformer les données entrantes en majuscules pour l'affichage et dans le modèle. C'est la raison pour laquelle j'ai utilisé une directive –
@JulienAZEMA J'irais avec celui-ci, vous obtenez l'apparence visuelle et vous semblez avoir un formulaire, donc ce que vous pourriez faire est que lors de l'envoi, vous pouvez itérer les propriétés de l'objet les en majuscules :) – Alex