Flex4表单验证【重点说明comboBox验证】

上次说到了简单的表单验证,可以配置错误信息,点击按钮可以进行所有表单验证,那么如果验证都通过,怎样执行提交任务呢?一般都会这么处理,下面这个是button点击事件处理方法

Xml代码 复制代码 收藏代码
  1. <SPAN style="FONT-SIZE: medium">function vaidateForm():void{   
  2.  var all:Array=Validator.validateAll([numVD,emailVD,comboValidator]);   
  3.     if(all.length==0){   
  4.       Alert.show("验证成功");   
  5.      //这里可以发送请求进行表单提交任务   
  6.   }   
  7.  }</SPAN>  

  

 关于错误信息提示方面,有人说到字体太小了不好看,那么针对这个问题肯定是样式没有配好,就如同提示框的字体太小一样都可以进行style设置的

现附上图




 类似于这样的效果,配置如下

Xml代码 复制代码 收藏代码
  1. <SPAN style="FONT-SIZE: medium"><fx:Style>  
  2. @namespace s "library://ns.adobe.com/flex/spark";   
  3. @namespace mx "library://ns.adobe.com/flex/mx";   
  4.   .errorTip   
  5.   {   
  6.     fontSize:16;   
  7.   }    
  8.   mx|Alert{   
  9.     fontSize:16;   
  10.   }   
  11. </fx:Style></SPAN>  

 接下来就说下comboBox的验证了,这个在普通验证里面是找不到的必须自己手写

 ComboValidator.as

Java代码 复制代码 收藏代码
  1. <SPAN style="FONT-SIZE: medium">package oreilly.cookbook   
  2. {   
  3.     import mx.validators.ValidationResult;   
  4.     import mx.validators.Validator;   
  5.     public class ComboValidator extends Validator   
  6.     {   
  7.         // 如果ComboBox中没有项目被选中, 则返回这个错误信息   
  8.         public var error:String;   
  9.         //如果开发者把一个自定义的项目推进ComboBox的数组中(这种情况我见过不少)   
  10.         //我们就会把这个项跟已选取的项进行对比。   
  11.         public var prompt:String;   
  12.         public function ComboValidator() {   
  13.             super();   
  14.         }   
  15.         //在这里我们进行两个检查:   
  16.         //1. comboBox中有没有项目被选中   
  17.         //2. 开发者有没有为comboBox加入自定义的项目   
  18.         //任何一个条件为ture的话, 则返回一个错误   
  19.         override protected function doValidation(value:Object):Array   
  20.         {   
  21.             var results:Array = [];   
  22.             if(value as String == prompt || value == null) {   
  23.                 var res:ValidationResult = new ValidationResult(true"""", error);   
  24.                 results.push(res);   
  25.             }   
  26.             return results;   
  27.         }   
  28.     }   
  29. }</SPAN>  

 具体使用代码,使用之前先配下Application的命名空间

  

Xml代码 复制代码 收藏代码
  1. <SPAN style="FONT-SIZE: medium"><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"     
  2.                xmlns:s="library://ns.adobe.com/flex/spark"    
  3.                xmlns:mx="library://ns.adobe.com/flex/mx"    
  4.                xmlns:cookbook="oreilly.cookbook.*"  
  5.                creationComplete="init()"  
  6.         ></SPAN>  

  看到那个cookbook的没有,就是配上那个,orelilly.cookbook是as文件的包名

 

 

Xml代码 复制代码 收藏代码
  1. <SPAN style="FONT-SIZE: medium"><fx:Declarations>  
  2. <cookbook:ComboValidator prompt="myCombox" id="comboValidator" error="请选择一项"    source="{myCombox}" property="selectedItem"/>  
  3. </fx:Declarations></SPAN> 
posted on 2012-02-25 10:43  唐朝  阅读(1879)  评论(0编辑  收藏  举报