设想一个场景:一个表单有多个字段需要验证,当且仅当所有验证都成功时,提交按钮才可用。代码如下:
test.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="init()">
<mx:Panel width="400" height="300">
<mx:Form>
<mx:FormItem label="地址" required="true" >
<mx:TextInput id="address" />
</mx:FormItem>
<mx:FormItem label="电话" required="true" >
<mx:TextInput id="phone" />
</mx:FormItem>
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button id="submit" label="提交" enabled="false"/>
</mx:ControlBar>
</mx:Panel>
<mx:Array id="validators">
<mx:Validator required="true" requiredFieldError="地址不能为空!" source="{address}" property="text" />
<mx:Validator required="true" requiredFieldError="电话不能为空!" source="{phone}" property="text" />
</mx:Array>
<mx:Script>
<![CDATA[
private var formValidator:FormValidator=new FormValidator();
private function init():void{
formValidator.addValidators(validators);
formValidator.failedCallBack=function():void{
submit.enabled=false;
};
formValidator.passedCallBack=function():void{
submit.enabled=true;
};
}
]]>
</mx:Script>
</mx:Application>
FormValidator.as
public function addValidator( validator : Validator) : void {
if(!validators.contains(validator)){
validator.trigger=this;
validator.triggerEvent=Event.CHANGE;
validator.source.addEventListener(FlexEvent.VALUE_COMMIT,onChange);
validator.source.addEventListener(Event.CHANGE,onChange);
validator.addEventListener(ValidationResultEvent.INVALID,function(event:ValidationResultEvent):void{
voteMap[event.target.source]=false;
_failedCallBack();
});
validator.addEventListener(ValidationResultEvent.VALID,function(event:ValidationResultEvent):void{
voteMap[event.target.source]=true;
refresh();
});
validators.addItem(validator);
}
}
private function onChange(event:Event):void{
dispatchEvent(new Event(Event.CHANGE));
}
详细代码看附件:)
分享到:
相关推荐
flex 表单数据合法性验证flex 表单数据合法性验证flex 表单数据合法性验证flex 表单数据合法性验证
提供: 表单的验证 基本流程 和处理方法 小小例子
里面的每一项我都试验过 直接复制到flex就能看到效果
概念验证项目,用于研究从动态(可能是外部化的)源生成Flex表单的潜力,以减少开发常见表单功能的开发时间。 我以前使用过'control'类,以允许非技术用户在外部XML文件中配置表单验证参数,但是表单和模型仍然需要...
JavaScript实现的可视化表单设计器源码。实现的可视化表单设计器。基于Vue的可视化表单设计器,让表单开发简单而高效。 特性如下: 可视化配置页面 提供栅格布局,并采用...支持表单验证 快速获取表单数据 国际化支持
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...
通过栅格进行表单布局,可以嵌套使用,支持 Flex,基本可覆盖复杂的表单布局场景。 自定义 提供自定义区域和自定义样式扩展,可以简单方便的自定义自己的表单。 高级组件 提供功能强大的高级组件,可适用在各种...
形式生成器 ...支持表单验证 快速获取表单数据 支持 如果你发现了新的bug,或者有新的功能要求,请新建一个问题 浏览器支持 现代浏览器和Internet Explorer 10+。 IE浏览器/边缘 火狐浏览器 Chro
网页设计 期末大作业web课程设计【原神风格+博客静态页面】,html+css+js纯手写,div盒子布局,flex布局,瀑布流布局,绝对定位/相对定位,js登录表单验证,简洁的下拉菜单,侧边栏手风琴效果,动漫游戏博客小清新...
以完全声明的方式实现具有灵活样式和验证功能的任何Web表单 现场演示: : Stackblitz: ://stackblitz.com/edit/dashjoin 特征 支持JSON Schema Draft 6 可以从URL加载引用的架构 呈现紧凑形式 支持2路数据绑定 ...
创造形式 ...支持表单验证 快速获取表格数据 国际化支持 第三方插件 浏览器支持 现代浏览器和Internet Explorer 10+。 IE浏览器/边缘 火狐浏览器 Chrome合金 苹果浏览器 IE10,IE11,Edge 最近
html+css+js,多用flex布局,有轮播图、电梯、表单验证,适合学完js的人,可当练手,可当web期末作业,仅供参考
是一个小型的声明式表单扩展和 polyfill 库。 下载:[formx.min.js][full-min] 或 [formx.js][full] [凉亭][凉亭]: bower install formx [npm][npm]: npm install formx [组件][组件]: component install esha/...
javascript复制到剪切板滚动加载图片生成随机字符串文件上传和下载动态字体大小元素是否在视口中限制输入滑动解锁常见表单验证UI代理LI拖拽交换商品规格组合工具提示滑块粘性导航条挪动足球 轮播轮播表格排序编辑...
CraueFormFlowBundle提供了一种在Symfony项目中构建和处理多步骤表单的功能。 特征: 导航(下一个,后退,重新开始) 步骤标签 跳过步骤 每个步骤都有不同的验证组 处理文件上传 动态步进导航(可选) 提交后...
block可以使用内联元素可以设置宽高,参考简易表单验证网易云课堂原生JS项目实战,表单验证技术栈:原生JS总结: viewport视窗大小自适应设置,参考布局模式之flex弹性布局,参考和min-height使用的替代是父级元素...
表单美化210311 实用css小集锦210312 Emmet210313 布局练习210314 flex实现⽔平垂直居中的最简单⽅式 flex实现双⻜翼布局 flex实现圣杯布局 瀑布流布局 模板引擎pug基本语法210315 布局练习(响应式布局)210316 ...
在美国各地显示和编辑旅行记录的个人资料信息。 接受之前验证表单数据。使用HTML(网格,flex),JS(表单,输入,创建和删除元素,验证,键)和CSS(样式,布局,错误消息)。