Il existe de très bon tutos sur les validators de flex, mais aucun ne prends en compte le cas d’un unique champs et du bouton de soumission desactivé. Le problème de cette configuration c’est que la vérification sur le contenu du textinput n’est faite qu’au changement de focus et à part si l’utilisateur fait un tab(on ne compte pas là dessus), on ne change pas de focus.
They’re nice tutorials on validators, but none with only one textinput and a submit button disabled. In this configuration the focus don’t change and the submit button he’s never activate. If user press tab it’s ok, but isn’t a nice solution).
La solution à ce petit problème est d’écouter les changements du textInput.
The solution for this little problem is to listen change on TextInput
Le mxml du validator /mxml for validator
- <mx:emailvalidator id="validEmail" source="{ti_mail}" property="text">
- requiredFieldError="Ce champ est obligatoire."
- missingAtSignError="Le charactere @ est manquant dans votre adresse email."
- missingPeriodInDomainError="Le domaine est manquant dans votre adresse email."
- missingUsernameError="Le nom d’utilisateur est manquant dans votre adresse email."
- valid="onValid()" invalid="onInvalid()"/>
- </mx:emailvalidator>
Les fonctions onValid et onInvalid à mettre dans script / functions in Script
- private function onValid():void {
- btn_envoyer.enabled = true;
- }
- private function onInvalid():void {
- btn_envoyer.enabled = false;
- }
Le textInput que l’on surveille / textInput listened
- <mx:textinput id="ti_mail" width="235" change="validEmail.validate()"></mx:textinput>
Le bouton de soumission non valide par défaut / submit button disabled
- <mx:button label="Soumettre" id="btn_envoyer" click="doLogin()" enabled="false"></mx:button>