Apache flex 如何以编程方式从flex组件中删除验证

Apache flex 如何以编程方式从flex组件中删除验证,apache-flex,actionscript-3,Apache Flex,Actionscript 3,如何以编程方式从flex组件中删除验证 这是我的方法 public static function validateRequired(txt:TextInput, errorMessage:String="This field is required"):Boolean { var v:Validator = new Validator(); v.listener = txt; va

如何以编程方式从flex组件中删除验证 这是我的方法

public static function validateRequired(txt:TextInput, errorMessage:String="This field is required"):Boolean
        {
                var v:Validator = new Validator();

                v.listener = txt;
                var result:ValidationResultEvent = v.validate(txt.text);
                var returnResult:Boolean = (result.type == ValidationResultEvent.VALID);
                //Alert.show("validation result is " + returnResult);
                if (!returnResult) {
                    v.requiredFieldError = errorMessage;
                }
                return returnResult;
        }
但是,每次我创建新的验证器时,弹出窗口都包含多条消息,如

此字段为必填项。
此字段为必填字段。


如何删除组件附带的错误消息?

Validator.enabled属性允许您启用和禁用验证程序。当enabled属性的值为true时,将启用验证器;当该值为false时,将禁用验证程序。当验证器被禁用时,它不发送任何事件,validate()方法返回null

例如,可以使用数据绑定设置enabled属性,如下代码所示:

<?xml version="1.0"?>
<!-- validators\EnableVal.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 

    <mx:ZipCodeValidator id="zcVal" 
        source="{inputA}" 
        property="text" 
        required="true" 
        enabled="{enableV.selected}"/>

    <mx:TextInput id="inputA"/> 
    <mx:TextInput/> 
    <mx:CheckBox id="enableV" 
        label="Validate input?"/>
</mx:Application>

我也遇到了同样的问题,我知道我必须在下一次验证之前清除上一次验证

private function resetValidationWarnings():void {
                for each (var validator:Validator in arrValidators) {
                    validator.dispatchEvent(new ValidationResultEvent(ValidationResultEvent.VALID));
                }
            }
这有点像POG,但它完成了任务


希望有帮助

我也遇到了类似的问题。在我的例子中,根本原因是每次调用验证时我都创建了validator对象(就像您所做的那样)。因此,UIComponent将其视为不同的验证器对象(请参见UIComponent.errorObjectArray),并再次存储错误消息。解决方案是使用全局或静态验证器,它可以为我解决重复的错误消息。

hmm。。没关系。。但我的问题是我不想用mxml编写所有的验证器。我想在提交时检查像Util.validateRequired(txt)这样的内容。。当我两次按submit键而未在文本框中写入任何内容时,验证失败,我会在错误弹出窗口中两次收到相同的错误消息。关闭另一个验证程序,然后通过按钮单击事件调用您的验证程序功能。