如何使Flex验证消息显示在字段上方?

时间:2009-06-06 13:28:31

标签: flex actionscript-3 validation coding-style

通常验证消息出现在输入字段的右侧: http://aralbalkan.com/wp-content/uploads/2008/01/better-flex-validation-errors.gif

但如果没有足够的空间,则上面会显示消息。

如何使总是出现在上面? (不论自由空间等)。

更新

如果我可以利用Flex内置验证基础结构(各种Validator类),那将会很棒。

示例源代码:

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

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

2 个答案:

答案 0 :(得分:1)

您的问题(您的屏幕截图确实如此)似乎引用了此处发布的代码:http://aralbalkan.com/1125,而非功能中的flex内置功能。 因此我建议只调整那里张贴的定位代码:

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

说:

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

答案 1 :(得分:0)

似乎不可能以优雅的方式使用Flex 3来实现,因为:

验证器设置UIComponent.errorString(...)属性,该属性依次调用 ToolTipManager.registerErrorString(...)和这个家伙打电话 TooltipManagerImpl.positionTip(...)其中工具提示局部计算有关组件XY和屏幕尺寸。并且此方法不考虑样式或提示,它只是将工具提示放入屏幕。

所以锤子,文件和自我发明的验证器都是这里最好的朋友。