`
lipbb
  • 浏览: 67474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex 自定义 Validator

阅读更多
flex 自定义验证器(Validator),先看下示例(有点大,500多K,请耐心等待加载 ) 好像显示不出来flash了?
直接访问 这里



代码如下:
ValidatorDate.as

package utils
{
	import mx.controls.DateField;
	import mx.validators.ValidationResult;
	import mx.validators.Validator;
	
	/**
	 * 用于验证起始时间必须小于结束时间。<br>
	 * 使用时必须指定 startDateField 与 endDateField,可选属性 errorMessage。<br>
	 * 注意:由于涉及到两个控件,所以对于 required 判断是同时的(必须两个时间同时不为空),可自定义 requiredFieldError 使它看上去"正确"。
	 */
	public class ValidatorDate extends Validator
	{
		public function ValidatorDate()
		{
			super();
		}
		
		private var _startDateField:DateField;

		public function get startDateField():DateField
		{
			return _startDateField;
		}

		public function set startDateField(value:DateField):void
		{
			removeListenerHandler();
			
			_startDateField = value;
			
			addListenerHandler();
		}

		private var _endDateField:DateField;

		public function get endDateField():DateField
		{
			return _endDateField;
		}

		public function set endDateField(value:DateField):void
		{
			removeListenerHandler();
			
			_endDateField = value;
			
			addListenerHandler();
		}
		
		private var _errorMessage:String = "起始时间不能晚于结束时间";

		public function get errorMessage():String
		{
			return _errorMessage;
		}

		public function set errorMessage(value:String):void
		{
			_errorMessage = value;
		}
		
		
		override protected function get actualListeners():Array
		{
			return [_startDateField, _endDateField];
		}
		
		override protected function doValidation(value:Object):Array
		{
			var results:Array = super.doValidation(value);
			
			if (results.length > 0 || ((value == null) && !required))
			{
				return results;
			}
			else
			{
				var start:Date = value.startDate;
				var end:Date = value.endDate;
				if(start.time > end.time)
				{
					var vr:ValidationResult = new ValidationResult(true, "", "startIsAfterEnd", errorMessage);
					results.push(vr);
				}
			}
			
			return results;
		}
		
		override protected function getValueFromSource():Object
		{
			var value:Object = {};
			
			if(_startDateField && _endDateField && _startDateField.selectedDate && _endDateField.selectedDate)
			{
				value.startDate = _startDateField.selectedDate;
				value.endDate = _endDateField.selectedDate;
				
				return value;
			}
			else 
			{
				return null;
			}
		}
		
		
	}
}


示例程序:ValidateSample.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300" xmlns:utils="utils.*">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<utils:ValidatorDate id="vd" startDateField="{startDateField}" endDateField="{endDateField}" 
							 trigger="{submitButton}" triggerEvent="click"
							 requiredFieldError="开始日期与结束日期都不能为空"
							 errorMessage="开始日期不能晚于结束日期"/>
	</fx:Declarations>
	
	<s:Form width="100%" height="100%">
		<s:FormHeading label="验证操作示例"/>
		<s:FormItem label="开始日期">
			<!--这里 formatString 是必须设置的属性,否则 selectedDate 始终为null -->
			<mx:DateField id="startDateField" formatString="YYYY-MM-DD"/>
		</s:FormItem>
		<s:FormItem label="结束日期">
			<mx:DateField id="endDateField" formatString="YYYY-MM-DD"/>
		</s:FormItem>
		<s:FormItem>
			<s:Button id="submitButton" label="提交" click="trace('start date:', startDateField.selectedDate);"/>
		</s:FormItem>
	</s:Form>
</s:Group>


似乎不怎么需要解说,还有问题的话留言吧
0
0
分享到:
评论

相关推荐

    struts自定义Validator示例

    struts中自定义validator验证 &lt;br&gt;很多时候需要验证“密码”与“重复密码”是否一致,如果放在服务器端验证就浪费资源了。 如何在客户端进行验证呢?JS可以实现,但是struts的validator框架是否能实现呢?-见...

    如何自定义验证器(完整源码)

    struts2中自定义验证器的使用,我自己写的一个完整代码,详细的展示了如何写自定义验证器以及使用和注意事项,代码解压后可以直接部署到MyEclipse上运行,相信你看完后也能很快掌握如何自定义验证器以及它的使用。

    自定义ADF validator

    ADF 11g:自定义JSF Validator 全文参见 http://blog.csdn.net/ygj26/article/details/8314708

    Flex from_validator_表单验证

    提供: 表单的验证 基本流程 和处理方法 小小例子

    Vue表单验证插件Vue Validator使用方法详解

    主要为大家详细介绍了Vue表单验证插件Vue Validator使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    struts验证器validator使用,以及自定义验证器

    该demo是struts验证器validator使用,以及struts基本配置,自定义创建struts的验证器,使用maven创建管理工程,使用eclipse编译器

    自定义校验注解框架(validator)

    自定义注解参数校验框架,根据项目开发中参数校验情况手写一套框架,供大家学习参考使用。可以直接运用在项目中,如果漏洞请留言,小编会第一时间修复,如果好用请给个好评,谢谢。

    表单验证控件commons-validator-1.3.1

    表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-validator-1.3.1表单验证控件commons-...

    json-schema-validator:使用 jjv 的自定义 json 模式验证器

    json-schema-validator 使用 jjv 的自定义 json 模式验证器

    表单验证 Validator v4.0

    Validator早期版本是基于JavaScript技术的伪静态类和HTML Element的自定义属性,可以对页面中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单。 Validator v4.0考虑了绝大多数情况下的应用可能,几乎...

    bootstrapvalidator

    bootstrapvalidator 基于bootstrap的表单验证插件 基于bootstrap的表单验证插件

    Laravel Validator自定义错误返回提示消息并在前端展示

    主要给大家介绍了关于Laravel Validator自定义错误返回提示消息并在前端展示的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    Struts Validator 开发指南

    Struts Validator 开发指南

    validator.js

    Validator是基于JavaScript技术的伪静态类和对象的自定义属性,可以对网页中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单,熟悉接口之后也可以对特定的表单项甚至仅仅是某个字符串进行验证。...

    Hibernate Validator 小例子

    Hibernate Validator的小例子,演示了最常用的几个注解以及验证方法,还是用了自定义的验证信息。 项目需求:Gradle构建工具,Eclipse或IDEA开发环境。

    vue props对象validator自定义函数实例

    今天小编就为大家分享一篇vue props对象validator自定义函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Validator

    Validator,通用表单验证!

    vue中使用vee-validator完成表单校验方案

    目前,使用较多的是async-validator和vee-validator。其中,elementUI组件库提供的表单验证也是基于async-validator,vee-validator是一种基于vue模板的轻量级校验框架。可以根据项目的需求,自行选择合适的方案。...

    hibernate-validator jar 包

    hibernate-validator用于验证对象属性。包含hibernate-validator-4.3.0.Final.jar、jboss-logging-3.1.0.CR2.jar、validation-api-1.0.0.GA.jar三个包

    validator验证原代码

    validator验证原代码

Global site tag (gtag.js) - Google Analytics