zoukankan      html  css  js  c++  java
  • flex 自定义Validator

    转载自 http://amberoracle.blog.163.com/blog/static/10598633820097262242474/

    第一步:写AS类继承mx.validators.Validator ,并导入mx.validators.ValidationResult.
     value中存放需要验证的内容
    results数组中存放验证后的结果,如果通过验证,数据为空;如果验证失败,数组中是ValidationResult.对象,内含失败信息。

    package utils
    {
        imp
    ort mx.validators.Validator;       //Validator 类是所有 Flex 验证程序的基类。

        imp ort mx.validators.ValidationResult;

        public class AddressValidator extends Validator
        {
            private var results:Array;
            public function AddressValidator()
            {
                super();
            }
            protected override function doValidation(value:Object):Array{    
      //受保护的方法    protect  ;  doValidation(value:Object):Array  ; 执行此验证程序的验证逻辑,包括验证缺少值或空值是否会导致如 required 属性的值所定义的验证错误。
                results=[];
                results=super.doValidation(value);
                if(value!=null)
                {
                    var pattern:RegExp=new RegExp("\\d+\\x20[A-Za-z]+");
                    if(value.search(pattern)==-1){
                        results.push(new ValidationResult(true,null,"notAddress","This is not a valid address"));
                              // 携带的错误信息
                    }
                }
                return results;//返回字符串如果为空 就通过验证  如果有内容  那就是验证失败的结果信息
            }
        }
    }

    第二步:导入FLEX程序
    xmlns:u="utils.*"
    建立验证器
    <u:AddressValidator id="addressV" source="{billingAddress}" property="text" required="true"/>
    id  验证器名
    source 验证源
    property 验证源所在位置的属性名
    required 不可为空

    第三步:在FLEX程序中导入imp ort mx.events.ValidationResultEvent;
    来对验证的结果进行判断
    private var vAddressResult:ValidationResultEvent=null;

     需要检验处:
    private function process():void{
                vAddressResult=addressV.validate();   //验 证器执行validate()方法进行验证
                  //validate    ()    方法     
                   //public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
                   //执行验证并(可选)将结果通知给侦听器。

              
                if(vAddressResult.type==ValidationResultEvent.VALID){ //判断是否通过验证
                var  e:ObjectDataEvent = new ObjectDataEvent("billingInfoReturn",checkoutInfo);
                this.dispatchEvent(e); 
                 }
            }
  • 相关阅读:
    输入任意个数字求和的小程序
    两个小的java程序,用于练习java基本语法
    《大道至简》第一,二章读后感
    搜索
    Dijkstra模板
    图论
    SPFA模板
    HDU 5114 Collision(扩展欧几里得) xgtao
    BZOJ 1001 狼抓兔子 (最大流转最短路) xgtao
    Codeforces 697C Lorenzo Von Matterhorn(严格二叉树的LCA) xgtao
  • 原文地址:https://www.cnblogs.com/nianshi/p/1732668.html
Copyright © 2011-2022 走看看