必須フィールドの指定

Flex は、フォームの必須入力フィールドの定義をサポートします。必須フィールドを定義するには、FormItem コンテナの required プロパティを指定します。このプロパティを指定すると、その FormItem コンテナのすべての子に必須のマークが付きます。

Flex は、FormItem のラベルと子の間に区切り記号として赤いアスタリスク (*) 文字を挿入し、必須フィールドであることを示します。たとえば、次の例では、オプションの ZIP コードフィールドと必須の ZIP コードフィールドが示されています。


Form コンテナの必須フィールド

次のコード例では、これらのフィールドを定義します。

<?xml version="1.0"?>
<!-- containers\layouts\FormReqField.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Form>
        <mx:FormItem label="ZIP Code">
            <mx:TextInput id="zipOptional" 
                width="100"/>
        </mx:FormItem>

        <mx:FormItem label="ZIP Code" required="true">
            <mx:TextInput id="zipRequired" 
                width="100"/>
        </mx:FormItem>
    </mx:Form>
</mx:Application>

FormItem の子に対する必須インジケータを、実行時に有効にすることができます。これは、特定のフォームフィールドが入力されると別のフォームフィールドが必須になるようにする場合に便利です。たとえば、ユーザーがニュースレターを購読する場合に選択する CheckBox コントロールが、フォームに配置されているとします。このチェックボックスをオンにすると、ユーザーの電子メールフィールドが必須になるようにします。次に例を示します。

<?xml version="1.0"?>
<!-- containers\layouts\FormReqFieldRuntime.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Form>
        <mx:FormItem label="Subscribe">
            <mx:CheckBox label="Subscribe?" 
                click="emAddr.required=true"/>
        </mx:FormItem>

        <mx:FormItem id="emAddr" label="e-mail address">
            <mx:TextInput id="emailAddr"/>
        </mx:FormItem>
    </mx:Form>
</mx:Application>

Flex は、必須フィールドを自動的に適用することはありません。フィールドに必須のマークを付けるだけです。必須フィールドを適用するには、検証ロジックをフォームに組み込む必要があります。適用ロジックの一部として、Flex バリデータを使用できます。すべての Flex バリデータは required プロパティを備え、これはデフォルトで true にされています。バリデータは、必須フィールドと検証機能をどのように適用するかによって、いくつかの方法で使用できます。詳細については、データ検証を参照してください。フォームでバリデータを使用する例については、Flex データモデルによるフォームデータの保存を参照してください。


Flex 2.01