任何人都知道为什么错误消息会在Flex SDK 3.5中重复出现(但不会在3.4中重复出现)并且有一个很好的方法可以让它停止重复?见截图:
您还可以在此处查看不同的应用:
http://www.flexdevelopers.com/examples/validator/3.4/Tester.html
http://www.flexdevelopers.com/examples/validator/3.5/Tester.html
[在两个应用中启用了查看源代码]
要实现此目的,请将textInput字段留空并点击保存多次。然后将鼠标悬停在textInput。
上我可以想到几个解决方案,但它们看起来很糟糕。
谢谢,
答案 0 :(得分:2)
这是一个在3.5中修复此问题的黑客。
查看此文件的来源:http://www.flexdevelopers.com/examples/validator/3.5/Tester.html
将saveMessage()方法更改为如下所示:
public function saveMessage(event:Event):void
{
setupValidators();
var failedValidations:Array = new Array();
failedValidations = Validator.validateAll(_formValidators);
if (failedValidations.length == 0)
{
Alert.show("save it");
}
else
{
for each (var validationResultEvent:ValidationResultEvent in failedValidations)
{
hackForSDK35Bug22911ToRemoveRepeatingErrorMessages(validationResultEvent);
}
}
}
然后添加此方法:
private function hackForSDK35Bug22911ToRemoveRepeatingErrorMessages(failedValidation:ValidationResultEvent):void
{
var uiComponent:UIComponent = failedValidation.target.source as UIComponent;
var errorString:String = uiComponent.errorString as String;
uiComponent.errorString = errorString.split("\n")[0];
}
应删除重复的错误消息,只留下一个......