mx.validators

# Validator - AS3 Flex

Package | mx.validators
Class | public class Validator
Inheritance | Validator EventDispatcher Object
Implements | IMXMLObject, IValidator
Subclasses | CreditCardValidator, CurrencyValidator, DateValidator, EmailValidator, MultiTriggerValidator, MultiTriggerValidator, NumberValidator, PhoneNumberValidator, RegExpValidator, SocialSecurityValidator, StringValidator, StyleValidator, ZipCodeValidator

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The Validator class is the base class for all Flex validators. This class implements the ability for a validator to make a field required, which means that the user must enter a value in the field or the validation fails.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The Validator class defines the following tag attributes, which all of its subclasses inherit:

      <mx:Validator
        enabled="true|false"
        listener="Value of the source property"
        property="No default"
        required="true|false"
        requiredFieldError="This field is required."
        source="No default"
        trigger="Value of the source property"
        triggerEvent="valueCommit"
      />

View the examples

More examples

Using error tips
Validating data by using custom validators
Example: Creating a simple validator

Related API Elements

mx.events.ValidationResultEvent
mx.validators.ValidationResult
mx.validators.RegExpValidationResult

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | enabled : Boolean Setting this value to false will stop the validator from performing validation. | Validator
|  | listener : Object Specifies the validation listener. | Validator
|  | property : String A String specifying the name of the property of the source object that contains the value to validate. | Validator
|  | required : Boolean = true If true, specifies that a missing or empty value causes a validation error. | Validator
|  | requiredFieldError : String Error message when a value is missing and the required property is true. | Validator
|  | source : Object Specifies the object containing the property to validate. | Validator
|  | trigger : IEventDispatcher Specifies the component generating the event that triggers the validator. | Validator
|  | triggerEvent : String Specifies the event that triggers the validation. | Validator

Protected Properties

| Property | Defined By
--- | --- | ---
|  | actualListeners : Array [read-only] Contains an Array of listener objects, if any, or the source object. | Validator
|  | actualTrigger : IEventDispatcher [read-only] Contains the trigger object, if any, or the source object. | Validator
|  | resourceManager : IResourceManager [read-only] A reference to the object which manages all of the application's localized resources. | Validator
|  | subFields : Array An Array of Strings containing the names for the properties contained in the value Object passed to the validate() method. | Validator

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | Validator() Constructor. | Validator
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | EventDispatcher
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | EventDispatcher
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | EventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | initialized(document:Object, id:String):void Called automatically by the MXML compiler when the Validator is created using an MXML tag. | Validator
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | EventDispatcher
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent Performs validation and optionally notifies the listeners of the result. | Validator
|  | validateAll(validators:Array):Array [static] Invokes all the validators in the validators Array. | Validator
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | EventDispatcher

Protected Methods

| Method | Defined By
--- | --- | ---
|  | addListenerHandler():void Sets up all of the listeners for the valid and invalid events dispatched from the validator. | Validator
|  | doValidation(value:Object):Array Executes the validation logic of this validator, including validating that a missing or empty value causes a validation error as defined by the value of the required property. | Validator
|  | getValueFromSource():Object Returns the Object to validate. | Validator
|  | handleResults(errorResults:Array):ValidationResultEvent Returns a ValidationResultEvent from the Array of error results. | Validator
|  | isRealValue(value:Object):Boolean Returns true if value is not null. | Validator
|  | removeListenerHandler():void Disconnects all of the listeners for the valid and invalid events dispatched from the validator. | Validator
|  | resourcesChanged():void This method is called when a Validator is constructed, and again whenever the ResourceManager dispatches a "change" Event to indicate that the localized resources have changed in some way. | Validator

Events
Click for more information on events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | activate | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher
|  | deactivate | [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher
|  | invalid | Dispatched when validation fails. | Validator
|  | valid | Dispatched when validation succeeds. | Validator

Protected Constants

| Constant | Defined By
--- | --- | ---
|  | DECIMAL_DIGITS : String = "0123456789" [static] A String containing the decimal digits 0 through 9. | Validator
|  | ROMAN_LETTERS : String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" [static] A string containing the upper- and lower-case letters of the Roman alphabet ("A" through "Z" and "a" through "z"). | Validator

Property Detail

### actualListeners

property

`actualListeners:Array` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Contains an Array of listener objects, if any, or the source object. Used to determine which object to notify about the validation result.

Implementation
`protected function get actualListeners():Array`

### actualTrigger

property

`actualTrigger:IEventDispatcher` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Contains the trigger object, if any, or the source object. Used to determine the listener object for the `triggerEvent`.

Implementation
`protected function get actualTrigger():IEventDispatcher`

### enabled

property

`enabled:Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Setting this value to `false` will stop the validator from performing validation. When a validator is disabled, it dispatch no events, and the `validate()` method returns null.

The default value is `true.`

Implementation
`public function get enabled():Boolean`
`public function set enabled(value:Boolean):void`

### listener

property

`listener:Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Specifies the validation listener.

If you do not specify a listener, Flex uses the value of the `source` property. After Flex determines the source component, it changes the border color of the component, displays an error message for a failure, or hides any existing error message for a successful validation.

Implementation
`public function get listener():Object`
`public function set listener(value:Object):void`

### property

property

`property:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

A String specifying the name of the property of the `source` object that contains the value to validate. The property is optional, but if you specify `source`, you should set a value for this property as well.

The default value is `null.`

Implementation
`public function get property():String`
`public function set property(value:String):void`

### required

property

`public var required:Boolean = true`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

If `true`, specifies that a missing or empty value causes a validation error.

The default value is `true.`

### requiredFieldError

property

`requiredFieldError:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Error message when a value is missing and the `required` property is `true`.

The default value is `"This field is required.".`

Implementation
`public function get requiredFieldError():String`
`public function set requiredFieldError(value:String):void`

### resourceManager

property

`resourceManager:IResourceManager` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

A reference to the object which manages all of the application's localized resources. This is a singleton instance which implements the IResourceManager interface.

This property can be used as the source for data binding. When this property is modified, it dispatches the `unused` event.

Implementation
`protected function get resourceManager():IResourceManager`

### source

property

`source:Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Specifies the object containing the property to validate. Set this to an instance of a component or a data model. You use data binding syntax in MXML to specify the value. This property supports dot-delimited Strings for specifying nested properties. If you specify a value to the `source` property, then you should specify a value to the `property` property as well. The `source` property is optional.

The default value is `null.`

Implementation
`public function get source():Object`
`public function set source(value:Object):void`

### subFields

property

`protected var subFields:Array`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

An Array of Strings containing the names for the properties contained in the `value` Object passed to the `validate()` method. For example, CreditCardValidator sets this property to `[ "cardNumber", "cardType" ]`. This value means that the `value` Object passed to the `validate()` method should contain a `cardNumber` and a `cardType` property.

Subclasses of the Validator class that validate multiple data fields (like CreditCardValidator and DateValidator) should assign this property in their constructor.

### trigger

property

`trigger:IEventDispatcher`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Specifies the component generating the event that triggers the validator. If omitted, by default Flex uses the value of the `source` property. When the `trigger` dispatches a `triggerEvent`, validation executes.

Implementation
`public function get trigger():IEventDispatcher`
`public function set trigger(value:IEventDispatcher):void`

### triggerEvent

property

`triggerEvent:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Specifies the event that triggers the validation. If omitted, Flex uses the `valueCommit` event. Flex dispatches the `valueCommit` event when a user completes data entry into a control. Usually this is when the user removes focus from the component, or when a property value is changed programmatically. If you want a validator to ignore all events, set `triggerEvent` to the empty string ("").

Implementation
`public function get triggerEvent():String`
`public function set triggerEvent(value:String):void`
Constructor Detail

### Validator

()
Constructor

`public function Validator()`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Constructor.

Method Detail

### addListenerHandler

()
method

`protected function addListenerHandler():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Sets up all of the listeners for the `valid` and `invalid` events dispatched from the validator. Subclasses of the Validator class should first call the `removeListenerHandler()` method, and then the `addListenerHandler()` method if the value of one of their listeners or sources changes. The CreditCardValidator and DateValidator classes use this function internally.

### doValidation

()
method

`protected function doValidation(value:Object):Array`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Executes the validation logic of this validator, including validating that a missing or empty value causes a validation error as defined by the value of the `required` property.

If you create a subclass of a validator class, you must override this method.

Parameters

| `value:Object` — Value to validate.

Returns

| `Array` — For an invalid result, an Array of ValidationResult objects, with one ValidationResult object for each field examined by the validator that failed validation.

More examples

About overriding the doValidation() method

Related API Elements

mx.validators.ValidationResult

### getValueFromSource

()
method

`protected function getValueFromSource():Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns the Object to validate. Subclasses, such as the CreditCardValidator and DateValidator classes, override this method because they need to access the values from multiple subfields.

Returns

| `Object` — The Object to validate.

### handleResults

()
method

`protected function handleResults(errorResults:Array):ValidationResultEvent`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns a ValidationResultEvent from the Array of error results. Internally, this function takes the results from the `doValidation()` method and puts it into a ValidationResultEvent object. Subclasses, such as the RegExpValidator class, should override this function if they output a subclass of ValidationResultEvent objects, such as the RegExpValidationResult objects, and needs to populate the object with additional information. You never call this function directly, and you should rarely override it.

Parameters

| `errorResults:Array` — Array of ValidationResult objects.

Returns

| `ValidationResultEvent` — The ValidationResultEvent returned by the `validate()` method.

### initialized

()
method

`public function initialized(document:Object, id:String):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Called automatically by the MXML compiler when the Validator is created using an MXML tag.

Parameters

| `document:Object` — The MXML document containing this Validator.
| `id:String` — Ignored.

### isRealValue

()
method

`protected function isRealValue(value:Object):Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns `true` if `value` is not null.

Parameters

| `value:Object` — The value to test.

Returns

| `Boolean` — `true` if `value` is not null.

### removeListenerHandler

()
method

`protected function removeListenerHandler():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Disconnects all of the listeners for the `valid` and `invalid` events dispatched from the validator. Subclasses should first call the `removeListenerHandler()` method and then the `addListenerHandler` method if the value of one of their listeners or sources changes. The CreditCardValidator and DateValidator classes use this function internally.

### resourcesChanged

()
method

`protected function resourcesChanged():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

This method is called when a Validator is constructed, and again whenever the ResourceManager dispatches a `"change"` Event to indicate that the localized resources have changed in some way.

This event will be dispatched when you set the ResourceManager's `localeChain` property, when a resource module has finished loading, and when you call the ResourceManager's `update()` method.

Subclasses should override this method and, after calling `super.resourcesChanged()`, do whatever is appropriate in response to having new resource values.

### validate

()
method

`public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Performs validation and optionally notifies the listeners of the result.

Parameters

| `value:Object` (default = `null`)`` — Optional value to validate. If null, then the validator uses the `source` and `property` properties to determine the value. If you specify this argument, you should also set the `listener` property to specify the target component for any validation error messages.
| `suppressEvents:Boolean` (default = `false`)`` — If `false`, then after validation, the validator will notify the listener of the result.

Returns

| `ValidationResultEvent` — A ValidationResultEvent object containing the results of the validation. For a successful validation, the `ValidationResultEvent.results` Array property is empty. For a validation failure, the `ValidationResultEvent.results` Array property contains one ValidationResult object for each field checked by the validator, both for fields that failed the validation and for fields that passed. Examine the `ValidationResult.isError` property to determine if the field passed or failed the validation.

Related API Elements

mx.events.ValidationResultEvent
mx.validators.ValidationResult

### validateAll

()
method

`public static function validateAll(validators:Array):Array`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Invokes all the validators in the `validators` Array. Returns an Array containing one ValidationResultEvent object for each validator that failed. Returns an empty Array if all validators succeed.

Parameters

| `validators:Array` — An Array containing the Validator objects to execute.

Returns

| `Array` — Array of ValidationResultEvent objects, where the Array contains one ValidationResultEvent object for each validator that failed. The Array is empty if all validators succeed.

Event Detail

### invalid

Event

Event Object Type: `mx.events.ValidationResultEvent`
property ValidationResultEvent.type = `mx.events.ValidationResultEvent.INVALID`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched when validation fails.

The `ValidationResultEvent.INVALID` constant defines the value of the `type` property of the event object for an `invalid` event. The value of this constant is "invalid".

The properties of the event object have the following values:

Property | Value
--- | ---
`bubbles` | false
`cancelable` | false
`currentTarget` | The Object that defines the event listener that handles the event. For example, if you use `myButton.addEventListener()` to register an event listener, myButton is the value of the `currentTarget`.
`field` | The name of the field that failed validation.
`message` | A single string that contains every error message from all of the ValidationResult objects in the results Array.
`results` | An array of ValidationResult objects, one per validated field.
`target` | The Object that dispatched the event; it is not always the Object listening for the event. Use the `currentTarget` property to always access the Object listening for the event.

### valid

Event

Event Object Type: `mx.events.ValidationResultEvent`
property ValidationResultEvent.type = `mx.events.ValidationResultEvent.VALID`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched when validation succeeds.

The `ValidationResultEvent.VALID` constant defines the value of the `type` property of the event object for a `valid`event. The value of this constant is "valid".

The properties of the event object have the following values:

Property | Value
--- | ---
`bubbles` | false
`cancelable` | false
`currentTarget` | The Object that defines the event listener that handles the event. For example, if you use `myButton.addEventListener()` to register an event listener, myButton is the value of the `currentTarget`.
`field` | An empty String.
`message` | An empty String.
`results` | An empty Array.
`target` | The Object that dispatched the event; it is not always the Object listening for the event. Use the `currentTarget` property to always access the Object listening for the event.

Constant Detail

### DECIMAL_DIGITS

Constant

`protected static const DECIMAL_DIGITS:String = "0123456789"`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

A String containing the decimal digits 0 through 9.

### ROMAN_LETTERS

Constant

`protected static const ROMAN_LETTERS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

A string containing the upper- and lower-case letters of the Roman alphabet ("A" through "Z" and "a" through "z").

Examples How to use this example
SimpleValidatorExample.mxml
Copy

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Simple example to demonstrate the Validator class. -->
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:s="library://ns.adobe.com/flex/spark"
            xmlns:mx="library://ns.adobe.com/flex/mx">

        <fx:Script>
            <![CDATA[
                // Import necessary classes.
                import mx.controls.Alert;
                import mx.events.ValidationResultEvent;

                // Event listener for the valid and invalid events.
                private function handleValid(evt:ValidationResultEvent):void {
                    if (evt.type == ValidationResultEvent.VALID) {
                        // Enable Submit button.
                        submitButton.enabled = true;
                    } else {
                        submitButton.enabled = false;
                    }
                }

                // Submit form is everything is valid.
                private function submitForm():void {
                    Alert.show("Form Submitted!");
                }
            ]]>
        </fx:Script>

        <fx:Declarations>
            <!-- The Validator class defines the required property and the validator events
                 used by all validator subclasses. -->
            <mx:Validator id="reqValid" required="true"
                    source="{fname}" property="text"
                    valid="handleValid(event)"
                    invalid="handleValid(event);" />
        </fx:Declarations>

        <s:Panel title="Validator Example"
                width="75%" height="75%"
                horizontalCenter="0" verticalCenter="0">
            <mx:Form left="10" right="10" top="10" bottom="10">
                <mx:FormItem>
                    <mx:Text width="100%" color="blue"
                            text="Enter a value in the Name field before you can submit. The E-mail field is optional."/>
                </mx:FormItem>
                <mx:FormItem label="Name: " required="true">
                    <mx:TextInput id="fname" width="100%"/>
                </mx:FormItem>
                <mx:FormItem label="E-mail address: " required="false">
                    <mx:TextInput id="email" width="100%"/>
                </mx:FormItem>
                <mx:FormItem>
                    <mx:Button id="submitButton" enabled="false"
                            label="Submit" click="submitForm();"/>
                </mx:FormItem>
            </mx:Form>
        </s:Panel>

    </s:Application>

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00