代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!--
date:2008.7.24
version:v1.0
author:zhaoyl
des:验证表单并给予友好化提示
-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
pageTitle="验证form表单"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.validators.Validator;
import mx.events.ValidationResultEvent;
import mx.validators.ZipCodeValidatorDomainType;
import mx.controls.Alert;
[Bindable]
private var validatorArr:Array;
private function init():void
{
validatorArr = new Array();
validatorArr.push(name_stringValidator);
validatorArr.push(address1_stringValidator);
validatorArr.push(city_stringValidator);
validatorArr.push(state_numberValidator);
validatorArr.push(zipCode_zipCodeValidator);
validatorArr.push(zipCode_stringValidator);
}
private function validateForm(evt:MouseEvent):void {
var validatorErrorArray:Array = Validator.validateAll(validatorArr);;
var isValidForm:Boolean = validatorErrorArray.length == 0;
if (isValidForm) {
Alert.show("员工信息填写不完整!");
} else {
var err:ValidationResultEvent;
var errorMessageArray:Array = [];
for each (err in validatorErrorArray) {
var errField:String = FormItem(err.currentTarget.source.parent).label
errorMessageArray.push(errField + ": " + err.message);
}
Alert.show(errorMessageArray.join("\n\n"), "请按照以下错误提示信息重新填写", Alert.OK);
}
}
private function resetForm(evt:MouseEvent):void
{
e_name.text ="";
address1.text = "";
address2.text = "";
city.text = "";
state.selectedIndex = -1;
zipCode.text = "";
}
]]>
</mx:Script>
<mx:XMLList id="statesXMLList">
<state label="生产中心" data="CA" />
<state label="运营中心" data="OR" />
</mx:XMLList>
<mx:StringValidator id="name_stringValidator"
source="{e_name}"
requiredFieldError="姓名不能为空"
property="text"
minLength="2" />
<mx:StringValidator id="address1_stringValidator"
source="{address1}"
requiredFieldError="地址不能为空"
property="text"
minLength="2" />
<mx:StringValidator id="city_stringValidator"
source="{city}"
requiredFieldError="城市不能为空"
property="text"
minLength="2" />
<mx:NumberValidator id="state_numberValidator"
source="{state}"
lowerThanMinError="请选择员工所在部门"
requiredFieldError="请选择部门"
property="selectedIndex"
minValue="0" />
<mx:ZipCodeValidator id="zipCode_zipCodeValidator"
source="{zipCode}"
property="text"
requiredFieldError="邮政编码不能超过10位"
domain="{ZipCodeValidatorDomainType.US_ONLY}" />
<mx:StringValidator id="zipCode_stringValidator"
source="{zipCode}"
property="text"
tooShortError="邮政编码是0-9的数字"
requiredFieldError="邮政编码不能为空"
minLength="10" maxLength="10" />
<mx:Form>
<mx:FormHeading label="员工注册" />
<mx:FormItem required="true" label="姓名">
<mx:TextInput id="e_name" maxChars="96" />
</mx:FormItem>
<mx:FormItem required="true" label="地址">
<mx:TextInput id="address1" maxChars="128" />
</mx:FormItem>
<mx:FormItem label="区域">
<mx:TextInput id="address2" maxChars="128" />
</mx:FormItem>
<mx:FormItem required="true" label="城市">
<mx:TextInput id="city" maxChars="128" />
</mx:FormItem>
<mx:FormItem required="true" label="部门">
<mx:ComboBox id="state" prompt="选择部门" selectedIndex="-1" dataProvider="{statesXMLList}" labelField="@label" />
</mx:FormItem>
<mx:FormItem required="true" label="邮政编码">
<mx:TextInput id="zipCode" maxChars="10" restrict="0-9 -" />
</mx:FormItem>
<mx:FormItem>
<mx:HBox>
<mx:Button label="注册" click="validateForm(event)" />
<mx:Button label="重置" click="resetForm(event)" />
</mx:HBox>
</mx:FormItem>
</mx:Form>
</mx:Application>
分享到:
相关推荐
`Flex from_validator_表单验证`提供了强大的验证功能,不仅可以使用预定义的验证器,还可以灵活地自定义验证规则。理解并熟练应用这些知识点,能帮助你构建出健壮且用户体验良好的表单系统。 以上是对"Flex from_...
- 用户在表单中输入数据。 - 当用户尝试提交表单或失去焦点时,关联的验证器会触发验证。 - 验证器检查输入数据是否满足规则,如果不满足,将显示错误消息。 - 错误消息通常通过`mx:FormError`组件显示,或者...
在Flex中,我们通常使用MX组件库中的Form组件来创建表单,而表单验证则是通过Validator类进行的。 1. **表单组件和验证器**: Flex的MX组件库提供了一系列的表单组件,如TextInput、TextArea、ComboBox等,它们都...
3. **表单验证**:在Flex中,可以使用Form或FormItem组件来组织用户输入,它们内置了验证功能。当表单提交时,所有关联的验证器会自动运行,若验证失败,则显示错误提示。 4. **错误提示**:验证失败后,Flex提供了...
在Flex中使用校验器进行数据验证,需要注意以下几点: 1. 默认情况下,校验器会在用户输入失去焦点时马上进行校验。也可以设置特定的触发器(trigger),比如按钮点击事件,来控制校验的时机。 2. 每个校验器都有...
通过Validator类,开发者可以轻松地添加验证逻辑到表单组件上,提高用户体验并减少错误。 在Flex3中,你可以使用预定义的验证控件如NumberValidator、EmailValidator等,或者自定义验证规则。这些控件通常与Form或...
- **Form、FormHeading、FormItem**: 表单及其相关的标题和表单项。 - **Grid、GridItem、GridRow**: 表格布局及其相关的单元格和行。 - **HBox**: 水平方向布局的容器。 - **HDivideBox**: 水平方向可调整大小的...
通过以上对《Flex 3 组件实例与应用》一书中提到的各类组件的介绍,我们可以看出Flex 3提供的组件不仅涵盖了基本的UI需求,还包括了高级的交互、数据展示和验证等功能。这使得开发者能够在构建复杂的应用程序时更加...
例如,可以使用`$.validator.addMethod()`定义自定义验证规则,检测手机号码格式是否正确,并通过`$(document).ready()`确保页面加载完成后执行验证功能。 4. 手机号码验证:在实际应用中,手机号码验证通常涉及...
Flutter Web中使用`Navigator`进行页面间的跳转,可以通过`Navigator.pushReplacement`或`Navigator.pushNamed`方法实现。 8. **响应式设计**: 考虑到不同设备的屏幕尺寸,使用MediaQuery获取设备信息,通过...
这意味着它由许多独立的、可重用的PHP组件组成,如HttpKernel、Routing、Form、Validator等。开发者可以根据项目需求选择使用其中的部分或全部组件,极大地提高了代码的复用性和灵活性。 2. **高性能** Symfony...
- `<form>`用于创建表单,`<input>`定义输入字段,`<button>`创建按钮。 3. **HTML属性** HTML标签上的属性提供了额外的信息或配置。例如,`class`属性用于CSS选择器,`id`属性为元素赋予唯一标识,`target`属性...