`

flex中使用Validator验证form表单

    博客分类:
  • Flex
阅读更多

关键字: flex validator 验证form表单

 

 

 

 

 

 

代码如下:

 

 

<?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_validator_表单验证`提供了强大的验证功能,不仅可以使用预定义的验证器,还可以灵活地自定义验证规则。理解并熟练应用这些知识点,能帮助你构建出健壮且用户体验良好的表单系统。 以上是对"Flex from_...

    flex form 验证(转)

    - 用户在表单中输入数据。 - 当用户尝试提交表单或失去焦点时,关联的验证器会触发验证。 - 验证器检查输入数据是否满足规则,如果不满足,将显示错误消息。 - 错误消息通常通过`mx:FormError`组件显示,或者...

    flex 表单数据合法性验证

    在Flex中,我们通常使用MX组件库中的Form组件来创建表单,而表单验证则是通过Validator类进行的。 1. **表单组件和验证器**: Flex的MX组件库提供了一系列的表单组件,如TextInput、TextArea、ComboBox等,它们都...

    构建Flex自动验证框架

    3. **表单验证**:在Flex中,可以使用Form或FormItem组件来组织用户输入,它们内置了验证功能。当表单提交时,所有关联的验证器会自动运行,若验证失败,则显示错误提示。 4. **错误提示**:验证失败后,Flex提供了...

    Flex基础培训-5-[数据验证

    在Flex中使用校验器进行数据验证,需要注意以下几点: 1. 默认情况下,校验器会在用户输入失去焦点时马上进行校验。也可以设置特定的触发器(trigger),比如按钮点击事件,来控制校验的时机。 2. 每个校验器都有...

    郑岩峰,幻想Flex3,源代码6

    通过Validator类,开发者可以轻松地添加验证逻辑到表单组件上,提高用户体验并减少错误。 在Flex3中,你可以使用预定义的验证控件如NumberValidator、EmailValidator等,或者自定义验证规则。这些控件通常与Form或...

    Flex UI组件使用全集

    - **Form、FormHeading、FormItem**: 表单及其相关的标题和表单项。 - **Grid、GridItem、GridRow**: 表格布局及其相关的单元格和行。 - **HBox**: 水平方向布局的容器。 - **HDivideBox**: 水平方向可调整大小的...

    Flex 3 组件实例与应用(2009版)

    通过以上对《Flex 3 组件实例与应用》一书中提到的各类组件的介绍,我们可以看出Flex 3提供的组件不仅涵盖了基本的UI需求,还包括了高级的交互、数据展示和验证等功能。这使得开发者能够在构建复杂的应用程序时更加...

    登录注册页面html

    例如,可以使用`$.validator.addMethod()`定义自定义验证规则,检测手机号码格式是否正确,并通过`$(document).ready()`确保页面加载完成后执行验证功能。 4. 手机号码验证:在实际应用中,手机号码验证通常涉及...

    使用FlutterWeb制作的登录页面

    Flutter Web中使用`Navigator`进行页面间的跳转,可以通过`Navigator.pushReplacement`或`Navigator.pushNamed`方法实现。 8. **响应式设计**: 考虑到不同设备的屏幕尺寸,使用MediaQuery获取设备信息,通过...

    辛普

    这意味着它由许多独立的、可重用的PHP组件组成,如HttpKernel、Routing、Form、Validator等。开发者可以根据项目需求选择使用其中的部分或全部组件,极大地提高了代码的复用性和灵活性。 2. **高性能** Symfony...

    code码

    - `&lt;form&gt;`用于创建表单,`&lt;input&gt;`定义输入字段,`&lt;button&gt;`创建按钮。 3. **HTML属性** HTML标签上的属性提供了额外的信息或配置。例如,`class`属性用于CSS选择器,`id`属性为元素赋予唯一标识,`target`属性...

Global site tag (gtag.js) - Google Analytics