通常验证消息出现在输入字段的右侧: 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>
答案 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和屏幕尺寸。并且此方法不考虑样式或提示,它只是将工具提示放入屏幕。
所以锤子,文件和自我发明的验证器都是这里最好的朋友。