2009-06-06 3 views
0

Habituellement message de validation apparaît juste au champ d'entrée: http://aralbalkan.com/wp-content/uploads/2008/01/better-flex-validation-errors.gifComment faire apparaître un message de validation Flex au-dessus du champ?

Mais s'il n'y a pas assez d'espace à droite, le message apparaît au-dessus.

Comment faire toujours apparaissent ci-dessus? (Quel que soit l'espace libre, etc.)

MISE À JOUR

Ce serait génial si je pouvais tirer parti de Flex intégré dans l'infrastructure de validation (différentes classes Validator).

Exemple code source:

<mx:StringValidator 
     id="nameValidator" 
     source="{nameInput}" 
     property="text" 
     minLength="2"/> 

<mx:Form> 
    <mx:FormItem label="Name:"> 
     <mx:TextInput id="nameInput"/> 
    </mx:FormItem> 
</mx:Form> 

Répondre

0

Il semble qu'il est impossible de le faire d'une manière élégante avec Flex 3 parce que:

Les validateurs définissent la propriété UIComponent.errorString (...) qui à son tour appelle ToolTipManager.registerErrorString (...) et ce type appelle TooltipManagerImpl.positionTip (...) où tooltip localtion calc concernant le composant XY et les dimensions de l'écran. Et cette méthode ne prend pas en compte les styles ou les astuces, elle adapte simplement l'info-bulle à l'écran.

Alors les validateurs de marteaux, de fichiers et d'auto-inventeurs sont les meilleurs amis ici.

1

Votre question (votre capture d'écran ne doute) semble faire référence le code affiché ici: http://aralbalkan.com/1125, pas dans la construction flex caractéristiques. Par conséquent, je recommande simplement régler le code de positionnement affiché là:

var errorTip:ToolTip = ToolTipManager.createToolTip(errorMessages[target.name] + " cannot be empty", pt.x + target.width + 5, pt.y) as ToolTip; 

à dire:

var errorTip:ToolTip = ToolTipManager.createToolTip(errorMessages[target.name] + " cannot be empty", pt.x + 5, pt.y - 30) as ToolTip; 
Questions connexes