重写flex的validator类来限制文本输入

原创 2007年09月19日 16:02:00

AS3虽然自带很多种类的validator,但是对于我们来说功能还是太少了.所以这时候不可避免就是要重写这个类,写出适合自己的validator类。

首先,假设有一个textinput,id名为userInput;一个button,id名为submit_Btn。例如以下代码:

<mx:TextInput id="selUser" width="100%"/>
<mx:Button id="bt_submit" />

新建一个floder,用于存放即将新建的class,新建一个personValidator的AS3 class文件

 

public class personValidator extends Validator
 
{
  
private var results:Array;
  
//构造方法继承父类
  public function personValidator()
  
{
   
super();  
  }

  
//重写doValidation方法,在其内可以写入自己想要的规则,很明显这里是根据select再判断具体person的情况
  override protected function doValidation(value:Object):Array
  
{
   var person:String 
= String(value.person);
   var select : Boolean 
= Boolean(value.select);
   
   
//clear the array
   results = ;
   
//首先做一下父类的方法
   results = super.doValidation(value);
   
if(results.length>0)
   
{
    
return results;
   }

   
//这里开始就是你自己的方法了
   if(select)
   
{
    
if(person == "" || person == null)
    
{
     results.push(
new ValidationResult(true"person""noPersonName"
                         
"輸入框内不能為空."));
                 
return results;
    }

   }

   
return results;
  }

 }


 

保存后,到前台页面文件中,添加此类,如:

 

<mx:Model id="selectUserXml">
  
<types>
   
<type>
    
<person>{selUser.text}</person>
    
<select>{toParameter.selected}</select>
   
</type>
  
</types>
 
</mx:Model>


 
<model:personValidator id="perVal" source="{selectUserXml}" property="type"
  trigger
="{bt_submit}" triggerEvent="click" listener="{selUser}"
  valid
="setNextOwnerResult()"/>

 

source:绑定的数据源,property:数据源中的节点名称,trigger:触发此validator的组件,triggerEvent:组件的事件,listener:此validator所监视的组件,valid:验证通过后执行的方法。

上面建立的model为一个保存数据的XML最后传入validator的value,当然你可以采取其他方式来保存。 

相关文章推荐

Textarea限制输入文本长度

  • 2011年12月25日 15:26
  • 396B
  • 下载

flex中textinput限制输入长度与某些字符

一:Flex中TextInput组件如何设置限制某些字符的输入 1. 限制某个字符的输入,用符号 ^ 跟上要限制的字符,可跟多个字符 2. 设置只能输入某些...

输入框 文本域 字数限制

  • 2016年03月09日 12:36
  • 3KB
  • 下载

Flex中TextInput组件用restrict限制某些字符的输入用法

restrict限制的意思1. 限制某个字符的输入,用符号 ^ 跟上要限制的字符,可跟多个字符                             ...

VC++限制编辑框输入文本的长度

  • 2012年08月09日 18:33
  • 12KB
  • 下载

多行文本输入框字数限制代码

  • 2016年12月20日 12:11
  • 4KB
  • 下载

flex中textinput限制输入长度与某些字符 .

一:Flex中TextInput组件如何设置限制某些字符的输入 1. 限制某个字符的输入,用符号 ^ 跟上要限制的字符,可跟多个字符 2. 设置只能输入某些...

限制文本输入

  • 2016年09月29日 14:08
  • 22.22MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重写flex的validator类来限制文本输入
举报原因:
原因补充:

(最多只允许输入30个字)