flex验证器

Flex有很多值得学习的地方,这里向大家描述一下常用Flex验证方式,默认的情况下,Flex当我们切换组件焦点的时候检测任意

动作触发验证有两种写法。一种是在验证组件中指明触发器和触发动作。另一种是执行事件处理函数。

常用Flex验证方式

1.Flex验证必填项

代码如下:


<mx:Validatoridmx:Validatorid="nameV"source="{nameTI}"
property="text"requiredFieldError="必须输入用户名!"/>
<mx:FormItemlabelmx:FormItemlabel="用户名:">
<mx:TextInputidmx:TextInputid="nameTI"/>
</mx:FormItem>
<mx:Buttonidmx:Buttonid="btn"label="提交"/>

Validator组件的功能是检测必填项。我们把要检测的组件的名字写在source属性中,把要检测的组件的属性写在property属性中

,然后自定义requiredFieldError属性的值即可。当然requiredFieldError属性的值也可以不定义,那么就会使用默认的提示文

字。

上面的错误提示的文字有些看不清,只需要加上这样一句就OK了:


<mx:Style>
.errorTip
{
fontSize:12;
}
</mx:Style>

2.控制检测时机

默认的情况下,Flex当我们切换组件焦点的时候检测任意动作触发验证有两种Flex验证方式。一种是在验证组件中指明触发器和

触发动作。另一种是执行事件处理函数。
在验证组件中指明触发器和触发动作的语法如下所示。


<mx:验证组件类型
source="{输入源id}"
property="输入源的属性"
trigger="{触发器}"
triggerEvent="触发事件">

下面这个例子为按Tab键切换焦点已经不能触发检测动作了,只有单击“提交”按钮才会触发检测。


<?xmlversionxmlversion="1.0"encoding="utf-8"?>
<mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"

fontSize="12"width="300"height="150">
<mx:Validatoridmx:Validatorid="nameV"source="{nameTI}"property="text"
requiredFieldError="必须输入姓名!"
trigger="{btn}"triggerEvent="click"/>
<mx:Validatoridmx:Validatorid="ageV"source="{ageTI}"property="text"
requiredFieldError="必须输入年龄!"
trigger="{btn}"triggerEvent="click"/>
<mx:FormItemlabelmx:FormItemlabel="姓名:">
<mx:TextInputidmx:TextInputid="nameTI"/>
</mx:FormItem>
<mx:FormItemlabelmx:FormItemlabel="年龄:">
<mx:TextInputidmx:TextInputid="ageTI"/>
</mx:FormItem>
<mx:Buttonidmx:Buttonid="btn"label="提交"/>
</mx:Application>


在默认情况下,Validator会在Flex发出valueCommit事件的时候进行检测,因此当焦点改变的时候,会自动进行检测。而上面的

源码中,则手动指定了进行检测的事件是btn按钮的click事件。
任意动作的触发也可采用代码触发Flex验证方式。
其语法如下所示。
<组件事件="验证组件.validate();"/>
验证组件都包含一个validate方法,用以代码执行验证。
比如:


<mx:Buttonidmx:Buttonid="btn"label="提交"click="nameV.validate();"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex中的正则表达式可以通过RegExp类来实现。例如,要匹配一个邮箱地址,可以使用以下代码: ``` var email:String = "[email protected]"; var pattern:RegExp = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; if(pattern.test(email)){ trace("Valid email address"); }else{ trace("Invalid email address"); } ``` 上述代码中,pattern变量存储了一个正则表达式,用于匹配邮箱地址。test()方法用于测试字符串是否匹配该正则表达式。 对于多个文本框的验证,可以使用RegExpValidator类。该类可以对多个文本框进行验证,并且可以自定义错误消息。以下是一个示例: ``` <mx:TextInput id="emailInput" /> <mx:TextInput id="passwordInput" /> <mx:RegExpValidator source="{emailInput}" property="text" expression="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" required="true" requiredFieldError="Email is required" invalidError="Invalid email address" /> <mx:RegExpValidator source="{passwordInput}" property="text" expression="^[a-zA-Z0-9]{6,}$" required="true" requiredFieldError="Password is required" invalidError="Password must be at least 6 characters long" /> ``` 上述代码中,RegExpValidator类用于验证emailInput和passwordInput两个文本框中的内容。expression属性用于指定正则表达式,required属性用于指定是否必填,requiredFieldError属性用于指定必填错误消息,invalidError属性用于指定非法输入错误消息。使用该类可以方便地对多个文本框进行验证

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值