Language Version: | ActionScript 3.0 |
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.
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
actualListeners:Array
[read-only]
Language Version: | ActionScript 3.0 |
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:IEventDispatcher
[read-only]
Language Version: | ActionScript 3.0 |
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:Boolean
Language Version: | ActionScript 3.0 |
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:Object
Language Version: | ActionScript 3.0 |
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:String
Language Version: | ActionScript 3.0 |
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
public var required:Boolean = true
Language Version: | ActionScript 3.0 |
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:String
Language Version: | ActionScript 3.0 |
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:IResourceManager
[read-only]
Language Version: | ActionScript 3.0 |
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:Object
Language Version: | ActionScript 3.0 |
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
protected var subFields:Array
Language Version: | ActionScript 3.0 |
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:IEventDispatcher
Language Version: | ActionScript 3.0 |
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:String
Language Version: | ActionScript 3.0 |
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
public function Validator()
Language Version: | ActionScript 3.0 |
Runtime Versions: | Flash Player 9, AIR 1.1 |
Constructor.
protected function addListenerHandler():void
Language Version: | ActionScript 3.0 |
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.
protected function doValidation(value:Object):Array
Language Version: | ActionScript 3.0 |
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
protected function getValueFromSource():Object
Language Version: | ActionScript 3.0 |
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.
|
protected function handleResults(errorResults:Array):ValidationResultEvent
Language Version: | ActionScript 3.0 |
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 public function initialized(document:Object, id:String):void
Language Version: | ActionScript 3.0 |
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.
|
protected function isRealValue(value:Object):Boolean
Language Version: | ActionScript 3.0 |
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.
|
protected function removeListenerHandler():void
Language Version: | ActionScript 3.0 |
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.
protected function resourcesChanged():void
Language Version: | ActionScript 3.0 |
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.
public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
Language Version: | ActionScript 3.0 |
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
public static function validateAll(validators:Array):Array
Language Version: | ActionScript 3.0 |
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 Object Type: mx.events.ValidationResultEvent
property ValidationResultEvent.type = mx.events.ValidationResultEvent.INVALID
Language Version: | ActionScript 3.0 |
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. |
Event Object Type: mx.events.ValidationResultEvent
property ValidationResultEvent.type = mx.events.ValidationResultEvent.VALID
Language Version: | ActionScript 3.0 |
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. |
protected static const DECIMAL_DIGITS:String = "0123456789"
Language Version: | ActionScript 3.0 |
Runtime Versions: | Flash Player 9, AIR 1.1 |
A String containing the decimal digits 0 through 9.
protected static const ROMAN_LETTERS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
Language Version: | ActionScript 3.0 |
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").
<?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>