博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flex 自定义 Validator 验证开始时间早于结束时间
阅读量:7075 次
发布时间:2019-06-28

本文共 3848 字,大约阅读时间需要 12 分钟。

flex 自定义验证器(Validator),先看下示例(有点大,500多K,请耐心等待加载...)

 

代码如下:

ValidatorDate.as 

View Code
1 package utils  2 {  3     import mx.controls.DateField;  4     import mx.validators.ValidationResult;  5     import mx.validators.Validator;  6       7     /**  8      * 用于验证起始时间必须小于结束时间。
9 * 使用时必须指定 startDateField 与 endDateField,可选属性 errorMessage。
10 * 注意:由于涉及到两个控件,所以对于 required 判断是同时的(必须两个时间同时不为空),可自定义 requiredFieldError 使它看上去"正确"。 11 */ 12 public class ValidatorDate extends Validator 13 { 14 public function ValidatorDate() 15 { 16 super(); 17 } 18 19 private var _startDateField:DateField; 20 21 public function get startDateField():DateField 22 { 23 return _startDateField; 24 } 25 26 public function set startDateField(value:DateField):void 27 { 28 removeListenerHandler(); 29 30 _startDateField = value; 31 32 addListenerHandler(); 33 } 34 35 private var _endDateField:DateField; 36 37 public function get endDateField():DateField 38 { 39 return _endDateField; 40 } 41 42 public function set endDateField(value:DateField):void 43 { 44 removeListenerHandler(); 45 46 _endDateField = value; 47 48 addListenerHandler(); 49 } 50 51 private var _errorMessage:String = "起始时间不能晚于结束时间"; 52 53 public function get errorMessage():String 54 { 55 return _errorMessage; 56 } 57 58 public function set errorMessage(value:String):void 59 { 60 _errorMessage = value; 61 } 62 63 64 override protected function get actualListeners():Array 65 { 66 return [_startDateField, _endDateField]; 67 } 68 69 override protected function doValidation(value:Object):Array 70 { 71 var results:Array = super.doValidation(value); 72 73 if (results.length > 0 || ((value == null) && !required)) 74 { 75 return results; 76 } 77 else 78 { 79 var start:Date = value.startDate; 80 var end:Date = value.endDate; 81 if(start.time > end.time) 82 { 83 var vr:ValidationResult = new ValidationResult(true, "", "startIsAfterEnd", errorMessage); 84 results.push(vr); 85 } 86 } 87 88 return results; 89 } 90 91 override protected function getValueFromSource():Object 92 { 93 var value:Object = {}; 94 95 if(_startDateField && _endDateField && _startDateField.selectedDate && _endDateField.selectedDate) 96 { 97 value.startDate = _startDateField.selectedDate; 98 value.endDate = _endDateField.selectedDate; 99 100 return value;101 }102 else 103 {104 return null;105 }106 }107 108 109 }110 }

 

示例程序:ValidateSample.mxml 

View Code
1 
2
5
6
7
11
12 13
14
15
16
17
18
19
20
21
22
23
24
25
26

 

 

转载于:https://www.cnblogs.com/lipbb/archive/2012/05/07/2487482.html

你可能感兴趣的文章
重读金典------高质量C编程指南(林锐)-------第六章 函数设计
查看>>
MySQL用命令行复制表,查看表结构
查看>>
第三次冲刺
查看>>
PHP多进程
查看>>
微软职位内部推荐-SENIOR SOFTWARE ENGINEER
查看>>
数值优化(三)
查看>>
Javascript.ReactNative-2-javascript-syntax-in-react-native
查看>>
LeetCode:Balanced Binary Tree
查看>>
4.时间复杂度和空间复杂度-2
查看>>
华为架构师8年经验谈:从单体架构到微服务的服务化演进之路
查看>>
软件工程——团队答辩
查看>>
Eonasdan bootstrap datetimepicker 使用记录
查看>>
使用 JavaScript 将网站后台的数据变化实时更新到前端-【知乎总结】
查看>>
四: 基本标签
查看>>
图片文件重命名
查看>>
Day1 BFS算法的学习和训练
查看>>
A Tour of Go Methods continued
查看>>
How to setup Wicket Examples in Eclipse
查看>>
什么样的项目适合自动化测试
查看>>
输不起慢的代价,赢不了休息的时间
查看>>