在Flex中用Validator检测数字、字符串、Email、电话号码等 .
2015-06-05 14:48
513 查看
在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
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="12" width="300" height="200">
<mx:Style>
<![CDATA[
.errorTip
{
fontSize: 12;
}
]]>
</mx:Style>
<mx:StringValidator id="nameV" source="{nameTI}" property="text"
minLength="2"
maxLength="5"
requiredFieldError="必须输入姓名!"
tooShortError="姓名过短!"
tooLongError="姓名过长!"
trigger="{btn}" triggerEvent="click"/>
<mx:NumberValidator id="ageV" source="{ageTI}" property="text"
domain="int"
minValue="6"
maxValue="100"
lowerThanMinError="年龄过小!"
exceedsMaxError="年龄过大!"
integerError="年龄必须是整数!"
invalidCharError='输入了非数字字符!'
requiredFieldError="必须输入年龄!"
trigger="{btn}" triggerEvent="click"/>
<mx:Validator id="sexV" source="{sexRBG}" property="selectedValue"
requiredFieldError="必须选择性别!"
trigger="{btn}" triggerEvent="click"
listener="{maleRB}"/>
<mx:EmailValidator id="emailV" source="{emailTI}" property="text"
requiredFieldError="必须输入E-mail"
invalidCharError="E-mail地址中有错误字符。"
invalidDomainError="E-mail地址中的域名不符合规范。"
invalidIPDomainError="E-mail地址中的IP格式域名不符合规范。"
invalidPeriodsInDomainError="域名中的“.”错误。"
missingAtSignError="E-mail地址缺少“@”符号。"
missingPeriodInDomainError="域名中缺少“.”"
missingUsernameError="E-mail地址缺少用户名。"
tooManyAtSignsError="E-mail地址中的“@”符号太多。"
trigger="{btn}" triggerEvent="click"/>
<mx:FormItem label="姓名:" width="200">
<mx:TextInput id="nameTI"/>
</mx:FormItem>
<mx:FormItem label="年龄:" width="200">
<mx:TextInput id="ageTI"/>
</mx:FormItem>
<mx:FormItem label="性别:" direction="horizontal" width="200">
<mx:RadioButtonGroup id="sexRBG"/>
<mx:RadioButton id="maleRB" groupName="sexRBG" label="男" value="1"/>
<mx:RadioButton id="femaleRB" groupName="sexRBG" label="女" value="0"/>
</mx:FormItem>
<mx:FormItem label="E-mail:" width="200">
<mx:TextInput id="emailTI"/>
</mx:FormItem>
<mx:Button id="btn" label="提交" />
相关文章推荐
- MongoDB assertion: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }
- MongoDB assertion: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }
- 关于 wait_event_interruptible() 和 wake_up()的使用
- leetcode--Climbing Stairs
- 修复 FLASHMAIL 只能发不能收的问题
- JetBrain WebStorm 注册码
- 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes
- SVN show log failed
- 德州扑克AI简介——2015华为软件精英赛小结
- Contains Duplicate III
- 进程控制 [fork() exec() wait() waitpid()]
- 强人工智能基本问题:全局控制与自组织
- SharePoint 2013上传AI格式文件,再次下载后变成了PS格式文件
- leetcode_70题——Climbing Stairs(简单DP题)
- 11. Container With Most Water
- Naive Bayes在mapreduce上的实现
- leetcode 217: Contains Duplicate
- 正确使用Block避免Cycle Retain和Crash
- LeetCode "Contains Duplicate III"
- sgu252:Railway Communication(费用流)