在Flex中用Validator检测数字、字符串、Email、电话号码等 .

在Flex中用Validator检测数字、字符串、Email、电话号码等
在上例“  用Validator检测必填项”中,我记录了Validator最简单的用法。但mx.validators包中的类并非只有Validator一个,他们可以实现信用卡号码格式检测(mx.validators.CreditCardValidator)、货币格式检测(mx.validators.CurrencyValidator)、E-mail格式检测(mx.validators.EmailValidator)等等功能,所有的检测器列表可以看 这里。这些类都是Validator的子类。

先看效果。下面的范例演示了StringValidator、NumberValidator和EmailValidator的用法。由于这三个类都继承自Validator,因此都拥有requiredFieldError属性,用于自定义没有值的时候的错误信息。但是这三个类拥有更多的错误信息。要检测的值越复杂,需要定义的错误信息就越多,例如EmailValidator,本例中共定义了9个错误信息。

如果不定义错误信息,Flex会显示默认的英文错误信息,这显然也不是我们所需要的。如果想偷懒的话,可以定义几个最可能出现的错误,例如本例的NumberValidator,就没有定义所有的错误信息。

顺便还要说一句的是,NumberValidator可以指定要检测的数字是整数还是实数,这需要用domain属性来指定。同时,它还可以指定千分位分隔符。

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="12" width="300" height="200">  
  4.   
  5.  <mx:Style>  
  6.  <![CDATA[ 
  7.  .errorTip 
  8.  { 
  9.  fontSize: 12; 
  10.  } 
  11.  ]]>  
  12.  </mx:Style>  
  13.   
  14.  <mx:StringValidator id="nameV" source="{nameTI}" property="text"  
  15.  minLength="2"  
  16.  maxLength="5"   
  17.  requiredFieldError="必须输入姓名!"  
  18.  tooShortError="姓名过短!"  
  19.  tooLongError="姓名过长!"  
  20.  trigger="{btn}" triggerEvent="click"/>  
  21.   
  22.  <mx:NumberValidator id="ageV" source="{ageTI}" property="text"  
  23.  domain="int"  
  24.  minValue="6"  
  25.  maxValue="100"  
  26.  lowerThanMinError="年龄过小!"  
  27.  exceedsMaxError="年龄过大!"   
  28.  integerError="年龄必须是整数!"  
  29.  invalidCharError='输入了非数字字符!'  
  30.  requiredFieldError="必须输入年龄!"  
  31.  trigger="{btn}" triggerEvent="click"/>  
  32.   
  33.  <mx:Validator id="sexV" source="{sexRBG}" property="selectedValue"   
  34.  requiredFieldError="必须选择性别!"  
  35.  trigger="{btn}" triggerEvent="click"  
  36.  listener="{maleRB}"/>  
  37.   
  38.  <mx:EmailValidator id="emailV" source="{emailTI}" property="text"  
  39.  requiredFieldError="必须输入E-mail"  
  40.  invalidCharError="E-mail地址中有错误字符。"  
  41.  invalidDomainError="E-mail地址中的域名不符合规范。"  
  42.  invalidIPDomainError="E-mail地址中的IP格式域名不符合规范。"  
  43.  invalidPeriodsInDomainError="域名中的“.”错误。"  
  44.  missingAtSignError="E-mail地址缺少“@”符号。"  
  45.  missingPeriodInDomainError="域名中缺少“.”"  
  46.  missingUsernameError="E-mail地址缺少用户名。"  
  47.  tooManyAtSignsError="E-mail地址中的“@”符号太多。"  
  48.  trigger="{btn}" triggerEvent="click"/>  
  49.    
  50.  <mx:FormItem label="姓名:" width="200">  
  51.  <mx:TextInput id="nameTI"/>  
  52.  </mx:FormItem>  
  53.   
  54.  <mx:FormItem label="年龄:" width="200">  
  55.  <mx:TextInput id="ageTI"/>  
  56.  </mx:FormItem>  
  57.   
  58.  <mx:FormItem label="性别:" direction="horizontal" width="200">  
  59.  <mx:RadioButtonGroup id="sexRBG"/>  
  60.  <mx:RadioButton id="maleRB" groupName="sexRBG" label="男" value="1"/>  
  61.  <mx:RadioButton id="femaleRB" groupName="sexRBG" label="女" value="0"/>  
  62.  </mx:FormItem>  
  63.   
  64.  <mx:FormItem label="E-mail:" width="200">  
  65.  <mx:TextInput id="emailTI"/>  
  66.  </mx:FormItem>  
  67.   
  68.  <mx:Button id="btn" label="提交" />  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值