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>
似乎不怎么需要解说,还有问题的话留言吧
分享到:
相关推荐
struts中自定义validator验证 <br>很多时候需要验证“密码”与“重复密码”是否一致,如果放在服务器端验证就浪费资源了。 如何在客户端进行验证呢?JS可以实现,但是struts的validator框架是否能实现呢?-见...
struts2中自定义验证器的使用,我自己写的一个完整代码,详细的展示了如何写自定义验证器以及使用和注意事项,代码解压后可以直接部署到MyEclipse上运行,相信你看完后也能很快掌握如何自定义验证器以及它的使用。
ADF 11g:自定义JSF Validator 全文参见 http://blog.csdn.net/ygj26/article/details/8314708
提供: 表单的验证 基本流程 和处理方法 小小例子
主要为大家详细介绍了Vue表单验证插件Vue Validator使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
该demo是struts验证器validator使用,以及struts基本配置,自定义创建struts的验证器,使用maven创建管理工程,使用eclipse编译器
自定义注解参数校验框架,根据项目开发中参数校验情况手写一套框架,供大家学习参考使用。可以直接运用在项目中,如果漏洞请留言,小编会第一时间修复,如果好用请给个好评,谢谢。
表单验证控件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 模式验证器
Validator早期版本是基于JavaScript技术的伪静态类和HTML Element的自定义属性,可以对页面中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单。 Validator v4.0考虑了绝大多数情况下的应用可能,几乎...
bootstrapvalidator 基于bootstrap的表单验证插件 基于bootstrap的表单验证插件
主要给大家介绍了关于Laravel Validator自定义错误返回提示消息并在前端展示的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
Struts Validator 开发指南
Validator是基于JavaScript技术的伪静态类和对象的自定义属性,可以对网页中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单,熟悉接口之后也可以对特定的表单项甚至仅仅是某个字符串进行验证。...
Hibernate Validator的小例子,演示了最常用的几个注解以及验证方法,还是用了自定义的验证信息。 项目需求:Gradle构建工具,Eclipse或IDEA开发环境。
今天小编就为大家分享一篇vue props对象validator自定义函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Validator,通用表单验证!
目前,使用较多的是async-validator和vee-validator。其中,elementUI组件库提供的表单验证也是基于async-validator,vee-validator是一种基于vue模板的轻量级校验框架。可以根据项目的需求,自行选择合适的方案。...
hibernate-validator用于验证对象属性。包含hibernate-validator-4.3.0.Final.jar、jboss-logging-3.1.0.CR2.jar、validation-api-1.0.0.GA.jar三个包
validator验证原代码