我创建了一个自定义textInput组件,使用私有验证器处理它自己的验证。根据组件的状态启用验证,即当组件状态为“编辑”时启用验证。
但是,当状态从编辑更改时,内部验证程序设置为未启用但文本框上的验证错误未清除 - textInput仍具有红色边框,并且在鼠标悬停时出现验证错误。我想要发生的是,当禁用验证器时,错误格式化和错误消息将从文本输入控件中清除。
有没有人知道如何做到这一点我尝试将内部验证器实例设置为enabled = false并调度新的focusOutEvent,如下所示,但验证错误格式仍然应用于textInput控制。
_validatorInstance.enabled = false;
//clear the validation errors if any
dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT));
有什么想法吗?
由于
乔恩
答案 0 :(得分:8)
据我所知,您可以从错误字段中清除errorString,错误格式应该消失:
myField.errorString = "";
答案 1 :(得分:3)
我发现有关使用errorString的问题用于从错误字段中清除errorString。一旦errorString被清除(以编程方式),绑定到验证器的Component就不会在后续验证中显示错误。
请将errorString替换为ValidationResultEvent,以此编程方式解决此问题:
var evt:ValidationResultEvent = new ValidationResultEvent(ValidationResultEvent.VALID);
validatorInstance.dispatchEvent(evt);
这个问题在使用4.0 SDK编译的代码中非常普遍,其中4.5 SDK以后已修复此问题。
这是JIRA报告的错误: http://bugs.adobe.com/jira/browse/SDK-29270
答案 2 :(得分:0)
请注意,将errorString设置为空白不会调度有效或无效的事件。