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