パッケージmx.validators
public class Validator
継承Validator Inheritance EventDispatcher Inheritance Object
実装IMXMLObject
SubclassesCreditCardValidator, CurrencyValidator, DateValidator, EmailValidator, NumberValidator, PhoneNumberValidator, RegExpValidator, SocialSecurityValidator, StringValidator, ZipCodeValidator

Validator クラスはすべての Flex 検証クラスの基本クラスです。このクラスにより、バリデータ機能が実装され、必要なフィールドを作成します。つまり、ユーザーがこのフィールドに値を入力しないと、検証は失敗します。

MXML シンタックスexpandedMXML シンタックスの非表示

Validator クラスにより、このクラスのすべてのサブクラスが継承する次のタグ属性が定義されます。

 <mx:Validator enabled="true|false" listener="ソースプロパティの値" property="デフォルト値なし" required="true|false" requiredFieldError="This field is required." source="デフォルト値なし" trigger="ソースプロパティの値" triggerEvent="valueCommit" /> 

例の表示

関連項目

mx.events.ValidationResultEvent
mx.validators.ValidationResult
mx.validators.RegExpValidationResult
エラーヒントの使用
カスタムバリデータを使用したデータの検証
例 : 単純なバリデータの作成


パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  enabled : Boolean
この値を false に設定すると、バリデータによる検証が行えなくなります。
Validator
  listener : Object
検証のリスナーを指定します。
Validator
  property : String
検証する値を含む source オブジェクトのプロパティの名前を指定するストリングを表します。
Validator
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  required : Boolean
true の場合、検証エラーの原因となる欠損値または空値を指定します。
Validator
  requiredFieldError : String
値が欠損し、なおかつ required プロパティが true の場合に発生するエラーメッセージです。
Validator
  source : Object
検証するプロパティを含むオブジェクトを指定します。
Validator
  trigger : IEventDispatcher
バリデータをトリガするイベントの生成を行うコンポーネントを指定します。
Validator
  triggerEvent : String
検証をトリガするイベントを指定します。
Validator
Protectedプロパティ
 プロパティ定義
  actualListeners : Array
[read-only] リスナーオブジェクトが存在する場合はリスナーオブジェクトを含みます。そうでない場合は、ソースオブジェクトを含みます。
Validator
  actualTrigger : IEventDispatcher
[read-only] トリガオブジェクトが存在する場合はトリガオブジェクトを含みます。そうでない場合は、ソースオブジェクトを含みます。
Validator
  subFields : Array
validate() メソッドに渡された value オブジェクトに含まれるプロパティ名を含むストリングの配列です。
Validator
パブリックメソッド
 メソッド定義
  Validator()
コンストラクタ。
Validator
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  initialized(document:Object, id:String):void
MXML タグを使用してバリデータを作成したときに、MXML コンパイラによって自動的に呼び出されます。
Validator
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
  validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
検証を実行し、その結果のリスナーを任意で通知します。
Validator
  validateAll(validators:Array):Array
[static] validators 配列に含まれるすべてのバリデータを呼び出します。
Validator
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
Protectedメソッド
 メソッド定義
  addListenerHandler():void
バリデータから送出された valid イベントおよび invalid イベントのすべてのリスナーを設定します。
Validator
  doValidation(value:Object):Array
required プロパティの値で定義されるような、検証エラーの原因となる欠損値および空値の検証をはじめ、このバリデータの検証ロジックを実行します。
Validator
  getValueFromSource():Object
検証するオブジェクトを返します。
Validator
  handleResults(errorResults:Array):ValidationResultEvent
エラー結果の配列から ValidationResultEvent を返します。
Validator
  isRealValue(value:Object):Boolean
value が null の場合、true を返します。
Validator
  removeListenerHandler():void
バリデータから送出された valid イベントおよび invalid イベントのすべてのリスナーを切断します。
Validator
イベント
 イベント一覧定義
  invalid 検証が失敗すると送出されます。Validator
  valid 検証が正常に完了すると送出されます。Validator
Protected定数
 定数定義
  DECIMAL_DIGITS : String = "0123456789"
[static] 0 から 9 の 10 進数字を含むストリングです。
Validator
  ROMAN_LETTERS : String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
[static] ローマ字アルファベットの大文字と小文字を含むストリングです ("A" から "Z"、および "a" から "z")。
Validator
プロパティの詳細
actualListenersプロパティ
actualListeners:Array  [read-only]

リスナーオブジェクトが存在する場合はリスナーオブジェクトを含みます。そうでない場合は、ソースオブジェクトを含みます。検証結果について通知するオブジェクトを判断するために使用します。

実装
    protected function get actualListeners():Array
actualTriggerプロパティ 
actualTrigger:IEventDispatcher  [read-only]

トリガオブジェクトが存在する場合はトリガオブジェクトを含みます。そうでない場合は、ソースオブジェクトを含みます。triggerEvent のリスナーオブジェクトを判断するために使用します。

実装
    protected function get actualTrigger():IEventDispatcher
enabledプロパティ 
enabled:Boolean  [read-write]

この値を false に設定すると、バリデータによる検証が行えなくなります。バリデータが無効になると、イベントは送出されず、validate() メソッドにより null が返されます。

デフォルト値true.

実装
    public function get enabled():Boolean
    public function set enabled(value:Boolean):void
listenerプロパティ 
listener:Object  [read-write]

検証のリスナーを指定します。

リスナーを指定しない場合、Flex は source プロパティの値を使用します。Flex がソースコンポーネントを調べた後、コンポーネントの境界線色を変更し、検証に失敗した際のエラーメッセージを表示するか、成功した際の既存のエラーメッセージを伏せます。

実装
    public function get listener():Object
    public function set listener(value:Object):void
propertyプロパティ 
property:String  [read-write]

検証する値を含む source オブジェクトのプロパティの名前を指定するストリングを表します。ネストされたプロパティを指定するために、ドット区切りのストリングがサポートされています。このプロパティはオプションですが、source を指定する場合、このプロパティにも値を設定する必要があります。

デフォルト値null.

実装
    public function get property():String
    public function set property(value:String):void
requiredプロパティ 
public var required:Boolean

true の場合、検証エラーの原因となる欠損値または空値を指定します。

デフォルト値true.

requiredFieldErrorプロパティ 
public var requiredFieldError:String

値が欠損し、なおかつ required プロパティが true の場合に発生するエラーメッセージです。

デフォルト値"This field is required.".

sourceプロパティ 
source:Object  [read-write]

検証するプロパティを含むオブジェクトを指定します。このプロパティには、コンポーネントまたはデータモデルのインスタンスを設定します。MXML のデータバインディングシンタックスを使用して、値を指定します。source プロパティに値を指定する場合、property プロパティにも値を指定する必要があります。source プロパティはオプションです。

デフォルト値null.

実装
    public function get source():Object
    public function set source(value:Object):void
subFieldsプロパティ 
protected var subFields:Array

validate() メソッドに渡された value オブジェクトに含まれるプロパティ名を含むストリングの配列です。たとえば、CreditCardValidator はこのプロパティを [ "cardNumber", "cardType" ] に設定します。この値は、validate() メソッドに渡された value オブジェクトに cardNumber プロパティおよび cardType プロパティが含まれることを意味します。

複数のデータフィールドを検証する Validator クラスのサブクラス (CreditCardValidator および DateValidator など) は、コンストラクタにこのプロパティを割り当てる必要があります。

triggerプロパティ 
trigger:IEventDispatcher  [read-write]

バリデータをトリガするイベントの生成を行うコンポーネントを指定します。指定を省略した場合、Flex はデフォルトで source プロパティの値を使用します。trigger により triggerEvent が送出されると、検証が実行されます。

実装
    public function get trigger():IEventDispatcher
    public function set trigger(value:IEventDispatcher):void
triggerEventプロパティ 
triggerEvent:String  [read-write]

検証をトリガするイベントを指定します。指定を省略すると、Flex は valueCommit イベントを使用します。ユーザーがコントロールにデータを入力し終えると、Flex は valueCommit イベントを送出します。通常これは、ユーザーがコンポーネントからフォーカスを移動したときか、プロパティ値がプログラムによって変更されたときです。バリデータにすべてのイベントを無視させたい場合は、triggerEvent を空のストリング ("") に設定します。

実装
    public function get triggerEvent():String
    public function set triggerEvent(value:String):void
コンストラクタの詳細
Validator()コンストラクタ
public 関数 Validator()

コンストラクタ。

メソッドの詳細
addListenerHandler()メソッド
protected function addListenerHandler():void

バリデータから送出された valid イベントおよび invalid イベントのすべてのリスナーを設定します。Validator クラスのサブクラスはまず removeListenerHandler() メソッドを呼び出し、サブクラスのリスナーまたはソースのいずれかの値が変更された場合は、addListenerHandler() メソッドを呼び出す必要があります。CreditCardValidator クラスと DateValidator クラスはこの関数を内部的に使用します。

doValidation()メソッド 
protected function doValidation(value:Object):Array

required プロパティの値で定義されるような、検証エラーの原因となる欠損値および空値の検証をはじめ、このバリデータの検証ロジックを実行します。

バリデータクラスのサブクラスを作成する場合、このメソッドをオーバーライドする必要があります。

パラメータ
value:Object — 検証する値を表します。

戻り値
Array — 無効な結果における ValidationResult オブジェクトの配列です。このオブジェクトは、検証に失敗したバリデータで検証が行われる各フィールドごとに 1 つ含まれます。

関連項目

getValueFromSource()メソッド 
protected function getValueFromSource():Object

検証するオブジェクトを返します。CreditCardValidator クラスや DateValidator クラスなどのサブクラスは、複数のサブフィールドから値にアクセスする必要があるため、このメソッドをオーバーライドします。

戻り値
Object — 検証するオブジェクトです。
handleResults()メソッド 
protected function handleResults(errorResults:Array):ValidationResultEvent

エラー結果の配列から ValidationResultEvent を返します。この関数は内部的に doValidation() メソッドの結果を取得し、ValidationResultEvent オブジェクトに配置します。RegExpValidator クラスなどのサブクラスは、RegExpValidationResult オブジェクトなどのValidationResultEvent オブジェクトのサブクラスを出力し、オブジェクトに情報を追加する必要がある場合、この関数をオーバーライドします。この関数は直接呼び出されないため、オーバーライドされることはほとんどありません。

パラメータ
errorResults:Array — ValidationResult オブジェクトの配列です。

戻り値
ValidationResultEventvalidate() メソッドにより返される ValidationResultEvent です。
initialized()メソッド 
public function initialized(document:Object, id:String):void

MXML タグを使用してバリデータを作成したときに、MXML コンパイラによって自動的に呼び出されます。

パラメータ
document:Object — このバリデータを含む MXML ドキュメントを表します。
 
id:String — 無視されます。
isRealValue()メソッド 
protected function isRealValue(value:Object):Boolean

value が null の場合、true を返します。

パラメータ
value:Object — テストする値です。

戻り値
Booleanvalue が null の場合は、true です。
removeListenerHandler()メソッド 
protected function removeListenerHandler():void

バリデータから送出された valid イベントおよび invalid イベントのすべてのリスナーを切断します。サブクラスはまず removeListenerHandler() メソッドを呼び出し、サブクラスのリスナーまたはソースのいずれかの値が変更された場合は、addListenerHandler メソッドを呼び出す必要があります。CreditCardValidator クラスと DateValidator クラスはこの関数を内部的に使用します。

validate()メソッド 
public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent

検証を実行し、その結果のリスナーを任意で通知します。

パラメータ
value:Object (default = null) — 検証するオプションの値です。null の場合、バリデータは source プロパティおよび property プロパティを使用して値を決定します。このパラメータを指定する場合、listener プロパティも設定して検証エラーメッセージの対象となるコンポーネントを指定する必要があります。
 
suppressEvents:Boolean (default = false)false の場合、検証後にバリデータが結果のリスナーを通知します。

戻り値
ValidationResultEvent — 検証結果を含む ValidationResultEvent オブジェクトを表します。検証が成功した場合、ValidationResultEvent.results 配列プロパティは空となります。検証に失敗した場合、ValidationResultEvent.results 配列プロパティには、バリデータによる検証の成功または失敗を問わず、検証したフィールドそれぞれにつき 1 つの ValidationResult オブジェクトが含まれます。ValidationResult.isError プロパティを検査し、フィールドが検証に成功したかまたは失敗したかを判断します。

関連項目

validateAll()メソッド 
public static function validateAll(validators:Array):Array

validators 配列に含まれるすべてのバリデータを呼び出します。失敗したバリデータごとに 1 つの ValidationResultEvent オブジェクトを含む配列を返します。すべてのバリデータが成功した場合は、空の配列を返します。

パラメータ
validators:Array — 実行する Validator オブジェクトを含む配列です。

戻り値
Array — ValidationResultEvent オブジェクトの配列で、配列には失敗したバリデータごとに 1 つの ValidationResultEvent オブジェクトが含まれます。すべてのバリデータが成功した場合、配列は空になります。
イベントの詳細
invalidevent 
イベントオブジェクトの型: mx.events.ValidationResultEvent
ValidationResultEvent.type property = mx.events.ValidationResultEvent.INVALID

検証が失敗すると送出されます。

ValidationResultEvent.INVALID 定数により、invalid イベントのイベントオブジェクトの type プロパティ値が定義されます。この定数の値は "invalid" です。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
field検証に失敗したフィールドの名前を表します。
messageresults 配列内のあらゆる ValidationResult オブジェクトから受け取ったエラーメッセージがすべて格納されている単独のストリングを表します。
resultsValidationResult オブジェクトの配列を表します。このオブジェクトは検証済みのフィールドに各自 1 つずつ格納されます。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
validevent  
イベントオブジェクトの型: mx.events.ValidationResultEvent
ValidationResultEvent.type property = mx.events.ValidationResultEvent.VALID

検証が正常に完了すると送出されます。

ValidationResultEvent.VALID 定数により、valid イベントのイベントオブジェクトの type プロパティ値が定義されます。この定数の値は "valid" です。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
field空のストリングを表します。
message空のストリングを表します。
results空の配列を表します。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
定数の詳細
DECIMAL_DIGITS定数
protected static const DECIMAL_DIGITS:String = "0123456789"

0 から 9 の 10 進数字を含むストリングです。

ROMAN_LETTERS定数 
protected static const ROMAN_LETTERS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

ローマ字アルファベットの大文字と小文字を含むストリングです ("A" から "Z"、および "a" から "z")。

SimpleValidatorExample
<?xml version="1.0"?>
<!-- Simple example to demonstrate the Validator class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[

            // Import necessary classes.
            import mx.controls.Alert;
            import mx.events.ValidationResultEvent;
            
            // Event listener for the valid and invalid events.
            private function handleValid(eventObj:ValidationResultEvent):void {
                if(eventObj.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!");
            }

        ]]>
    </mx:Script>

    <!-- 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)"/>
        
    <mx:Panel title="Validator Example" width="100%" height="100%" 
            paddingTop="5" paddingLeft="5" paddingRight="5" paddingBottom="5">

        <mx:Form>
            <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 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>

    </mx:Panel>
</mx:Application>