Adobe® Flex® 4 Language Reference
Show Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
mx.validators 
Validator 
Packagemx.validators
Classpublic class Validator
InheritanceValidator Inheritance EventDispatcher Inheritance Object
Implements IMXMLObject
Subclasses CreditCardValidator, CurrencyValidator, DateValidator, EmailValidator, 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 SyntaxexpandedHide 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

See also



Public Properties
 PropertyDefined By
 Inheritedconstructor : 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
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  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
 PropertyDefined 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
 MethodDefined By
  
Constructor.
Validator
 Inherited
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
 Inherited
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
  
Called automatically by the MXML compiler when the Validator is created using an MXML tag.
Validator
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
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
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Protected Methods
 MethodDefined By
  
Sets up all of the listeners for the valid and invalid events dispatched from the validator.
Validator
  
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
  
Returns the Object to validate.
Validator
  
Returns a ValidationResultEvent from the Array of error results.
Validator
  
Returns true if value is not null.
Validator
  
Disconnects all of the listeners for the valid and invalid events dispatched from the validator.
Validator
  
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
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
  Dispatched when validation fails.Validator
  Dispatched when validation succeeds.Validator
Protected Constants
 ConstantDefined 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.

See also

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
Booleantrue 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.

See also

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:

PropertyValue
bubblesfalse
cancelablefalse
currentTargetThe 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.
fieldThe name of the field that failed validation.
messageA single string that contains every error message from all of the ValidationResult objects in the results Array.
resultsAn array of ValidationResult objects, one per validated field.
targetThe 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 validevent. The value of this constant is "valid".

The properties of the event object have the following values:

PropertyValue
bubblesfalse
cancelablefalse
currentTargetThe 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.
fieldAn empty String.
messageAn empty String.
resultsAn empty Array.
targetThe 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").

SimpleValidatorExample.mxml
<?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>