flex校验

来源:互联网 发布:基于caffe的图像分割 编辑:程序博客网 时间:2024/05/14 21:53

package cn.newtouch.flexDemo.business.validator
{
 import mx.binding.utils.BindingUtils;
 import mx.containers.FormItem;
 import mx.controls.Alert;
 import mx.controls.ComboBox;
 import mx.controls.DateField;
 import mx.controls.TextArea;
 import mx.controls.TextInput;
 import mx.core.Container;
 import mx.core.UIComponent;
 import mx.validators.StringValidator;
 import mx.validators.Validator;

 public class ValidatorUtil
 {
  public static function setValidate(container:Container,params:Array):void{
   for each(var param:ValidateParam in params){
    if(param.option == ValidateParam.REQUIRED){
     Alert.show("come in");
     trace("wo dao le zhe li");
     setRequired(container,param.objectArray);
     Alert.show(param.objectArray.length.toString());
    }else if(param.option == ValidateParam.READONLY){
     //setTextLength(container,param.objectArray);
    }
   }
  }
  
  public static function setRequired(container:Container,objectsArray:Array):void{
   for each(var object:Object in objectsArray){
    if(object is UIComponent){
     if((object as UIComponent).parent is FormItem){
      ((object as UIComponent).parent as FormItem).required = true;
      var validator:Validator = new Validator();
      validator.required = true;
      validator.property = "text";
      validator.source = object;
      validator.requiredFieldError = "请输入"+((object as UIComponent).parent as FormItem).label;
     }
    }
   }
  }
  
  private static function setReadOnly(container:Container,objectsArray:Array):void{
   for each(var object:Object in objectsArray){
    if(object is TextInput){
     (object as TextInput).editable = false;
    }else if(object is TextArea){
     (object as TextArea).editable = false;
    }else if(object is ComboBox){
     (object as ComboBox).enabled =  false;
    }else if(object is DateField){
     (object as DateField).editable = false;
    }
   }
  }
 
  public static function setTextLength(container:Container,objectsArray:Array,maxLength:int,minLength:int):void{
   
   for each(var object:Object in objectsArray){
    if(object is TextInput){
      (object as TextInput).visible = false;
      var stringvalidator:StringValidator = new StringValidator();
      stringvalidator.maxLength = maxLength;
      stringvalidator.minLength = minLength;
      stringvalidator.property = "text"
      stringvalidator.source = object;
      stringvalidator.tooLongError = "输入信息过长";
      stringvalidator.tooShortError = "输入信息过短";
    }
   }
  }
  
  public static function setHidden(container:Container,objectsArray:Array):void{
   for each(var object:Object in objectsArray){
    if(object is UIComponent){
     (object as UIComponent).visible = false;
     Alert.show((object as UIComponent).parent+"");
     ((object as UIComponent).parent as FormItem).visible = false;
     ((object as UIComponent).parent as UIComponent).includeInLayout = false;
    }
   }
  }
 }
}

 

 

 

在设置UI的Visible的时候,改组件的位置一直被占着,比较恶心,今天在这里发现了一个方法,操作方法如下

设置:includeInLayout为false即可

原创粉丝点击