重写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,当然你可以采取其他方式来保存。 

validator自定义方法

Jquery-validate插件                       body{font-size: 36px;             line-height: 1.6; ...
  • douyunqian668
  • douyunqian668
  • 2016年10月20日 16:29
  • 225

文本域限定输入500,显示目前可以输入多少字

文字最大长度: 500. 还剩: 500. function checkLength(which) { var maxChars = 500; if (which.value.length > ...
  • qq_21511001
  • qq_21511001
  • 2017年04月13日 09:26
  • 571

文本限制输入

1.UITextField 添加监听 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(te...
  • u013690523
  • u013690523
  • 2016年05月05日 11:09
  • 206

Flex读取txt文件中的内容(三)

Flex读取txt文件中的内容 1、设计源码 LoadTxt.mxml:
  • you23hai45
  • you23hai45
  • 2014年05月07日 22:47
  • 1581

Qt QLineEdit 限制输入类型以及大小Int 和double

1.QLineEdit 限制整数 [cpp] view plain copy   m_LineEditIterate = new QLineEdit();   m_LineEdi...
  • luoyouren
  • luoyouren
  • 2016年04月08日 14:03
  • 1365

flex导致浏览器对指定站点输入法无法输入中文的问题

在html中设计div弹方框,并用swfobject方式加载swf,同时设置其params.wmode="opaque", html页面中包括textarea。html加载后,textarea无法输入...
  • aegoose
  • aegoose
  • 2014年04月28日 12:19
  • 2809

JAVA限制文本框输入

我们在做JAVA GUI开发的时候,有的时候需要对文本框中的内容进行限制,比如最大长度、转换为大写等。今天就为大家介绍一下该如何实现。通过查阅JDK API,我们可以知道,在JTextField中提供...
  • jianggujin
  • jianggujin
  • 2016年03月31日 19:11
  • 2312

[组件开发] flex 4 s:dropdownlist 垂直下拉滚动条 样式重写

主APP  main.mxml:
  • happyrabbit456
  • happyrabbit456
  • 2013年04月12日 19:56
  • 1000

通过js控制input文本框输入文本类型

今天碰到一个小问题,要求限制文本框输入类型,特地分享给大家,文本框类型限制主要靠正则表达式。下面是我查找总结整理的例子。具体输入要求可以自己查一下正则表达式。 这里用到一个JavaScript 的St...
  • qq_36020968
  • qq_36020968
  • 2016年09月12日 22:49
  • 1388

MFC 编辑框限定字数的大小(支持多节字语言,比如中日韩文)

编辑控件 id 为 ID_NAME_EDIT,对其关联一变量
  • W_SX12553
  • W_SX12553
  • 2014年09月17日 17:44
  • 2707
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重写flex的validator类来限制文本输入
举报原因:
原因补充:

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