FLEX实践—动态应用Validator验证多组数据

news/2024/5/19 18:43:43 标签: flex

本文中以DateValidator为例,首先介绍一下传统的DateValidator用法

 

<mx:DateValidator id="dateValidator" source="test" formatError="Format error, should be 'YYYY-MM-DD'"/>

<mx:DateField id="test" formatString='YYYY-MM-DD'/>

 

这种验证方法只适用与一对一,当我们希望只定义一个DateValidator来验证一组DateField时该方法就无能为力了。

下面的代码将介绍如果解决这一问题。

 

代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
    layout="absolute">
 <mx:Script>
  <![CDATA[
   import mx.validators.DateValidator;
   import mx.events.ItemClickEvent;
   import mx.events.ValidationResultEvent;
   import mx.validators.ValidationResult;
   import mx.controls.Alert;

   var testObject:Object=new Object();

   private function showDate():void
   {
    Alert.show(dateFormatter.format(test.selectedDate));
   }

   private function validateDate(event:FocusEvent, name:String):void
   {

       if(event.target.text){
         dateValidator.source=event.target;
           if (dateValidator.validate().type == ValidationResultEvent.INVALID)
                Alert.show(name+": "+(DateValidator.validateDate(dateValidator,event.target.text,

                new Date().toDateString())[0] as ValidationResult).errorMessage);
           else
                resultDate.text=dateFormatter.format((testObject['date']));     
     }

   }
  ]]>
 </mx:Script>

 <mx:DateValidator id="dateValidator"
       formatError="Incorrect formatting string,should be 'YYYY-MM-DD'."
       inputFormat="YYYY-MM-DD"
       property="text"/>

 <mx:DateFormatter id="dateFormatter"
       formatString="YYYY-MM-DD"/>
 <mx:DateField x="427"
      y="168"
      id="test"
      width="220"
      formatString="YYYY-MM-DD"
      toolTip="{test.selectedDate}"
      editable="true"
      change="{testObject['date']=DateField(event.target).selectedDate}"
      focusOut="validateDate(event,'DATE')"/>
 <mx:Button x="427"
      y="258"
      label="Show Date"
      click="showDate()"/>
 <mx:DateField x="427"
      y="198"
      width="220"
      formatString="YYYY-MM-DD"
      toolTip="{test.selectedDate}"
      editable="true"
      change="{testObject['date']=DateField(event.target).selectedDate}"
      focusOut="validateDate(event,'DATE1')"/>
 <mx:TextInput x="427"
      y="228"
      width="220"
      id="resultDate"/>
 <mx:Label x="384" y="170" text="DATE:"/>
 <mx:Label x="381" y="200" text="DATE1:"/>
 <mx:Label x="374" y="230" text="RESULT:"/>

</mx:Application>

 

 

private function sumbit():void
   {
    //验证信息输入
    var addValidators:Array = [sqrValid,sqlyValid,shsjValid,shrValid,syddValid,syrValid,qysjValid];
    var error:Array = Validator.validateAll(addValidators);
    if(error.length > 0) {
     focusManager.setFocus(error[0].target.source);
     Alert.okLabel = "确认";
     Alert.show(error[0].target.requiredFieldError,"提示",Alert.OK,this.parent as Sprite);
     return;
    }


http://www.niftyadmin.cn/n/1654121.html

相关文章

python 字典items和iteritems

3.4.6 items和iteritems 说明&#xff1a;items以列表方式返回字典中的键值对&#xff0c;iteritems以迭代器对象 返回键值对儿(Python3中不再支持&#xff09;&#xff1b;例子&#xff1a; 1: >>> x2: {name: Bill}3: >>> x.items()4: dict_items([(n…

C#中的枚举和结构体

枚举:1.枚举的声明用enum关键字修饰,加枚举名enum 枚举名{值1,值2,值3,}2.什么时候使用枚举在确定值的数量和值的时候使用枚举,规范程序的开发3.枚举的赋值枚举名 变量名枚举名.值;Day nowDay Day.星期一;结构体:结构体的声明 用struct关键字修饰,加结构体名结构体的使用:结构…

力扣 -- 62.不同路径、63.不同路径2

题目链接&#xff1a;64. 最小路径和 - 力扣&#xff08;LeetCode&#xff09; 63. 不同路径 II - 力扣&#xff08;LeetCode&#xff09; 以下是用动态规划的思想来解决这两道类似的动规的题目&#xff0c;相信各位老铁都是能够学会并且掌握这两道经典的题目的。 参考代码&am…

Flex 页面 初始化顺序

Flex RemoteObject 远程调用对像默认是异步执行的,就像AJAX那样,,,,这样子有时候对于等待业务层反回值是很不方便,,所以在Flex RemoteObject 对像中也有设置为同步执行的方法: 两种解决办法: 1,相关处理代码放在result返回那个方法里面. 2,concurrency 设置为single或last. …

Redis演示及使用场景

概述 Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value(字典, Remote Dictionary Server,远程字典服务器)数据库。 客户端&#xff1a;http://redis.io/clients 命令&#xff1a;http://redis.io/commands http://redisdoc.com .NET…

flex读取外部XML文件方式

eg: 使用URLLoader 读取&#xff1a; XML文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <IPCONFIG>   <VALUE>   <ID>URLBarCode</ID>   <ADDR>192.168.1.28:8080</ADDR>   </VALUE&…

C#数组的使用

数组 数组的定义 :可以存储相同类型多个数据的集合,数组的长度一旦确定就不能改变获取数组的长度: 数组名.Lenght数组的元素 :数组中的每个值我们称为元素,元素之间用逗号间隔数组的下标 :数组中的元素都有下标,从0开始,第一个元素是0,后面元素的下标是前一个元素的下标加1下标…

I学霸官方免费教程三十三:Java集合框架之Map集合

Map接口 Map集合采用键值对&#xff08;key-value&#xff09;的方式存储数据&#xff0c;其中键不可以重复、值可以重复。 常用类有HashMap、TreeMap和Properties HashMap类 假如&#xff0c;现在我有一个集合&#xff0c;集合中存储着一批WiFi的名称和密码&#xff0c;现在要…