0

mx:FormItem タグの下にグループ化した多数のチェックボックスがあります。これは、Application と呼ばれます。

<mx:FormItem  id ="application" label="Application" labelStyleName="labelStyle" width="520">

これらは検証する必要があります。特に、これらのチェックボックスの少なくとも 1 つが選択されているかどうかを確認する必要があります。これは、ユーザーがボタンを送信しようとしたときに行われるため、次のような効果があります。

<mx:Button width="60" label="Send" id="submit" click="doValidation();" />

doValidation() 関数には、チェックする必要がある一連の条件があり、これらの条件を渡すと、次のように Mx:FormItem タグの errorMessage プロパティを設定します。

private function doValidation():void
{
  if(check.condition) //  check.condition is  a stub
     Application.errorString= "You messed up"; 
}

ただし、この errorString は表示されません。これが私が立ち往生しているところだと思います。フレックスは比較的新しいので、まだ自分のやり方がよくわかりません。このエラーメッセージがどのように表示されるかを誰かが説明できますか? 内部ロジックは問題ありません。コードをデバッグして動作を確認しましたが、

4

1 に答える 1

0

チェックボックスを直接検証する方法はわかりませんが、FormItem 内にある複数のチェックボックスに対して手動で作成されたバリデーターの例を次に示します。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    minWidth="955" minHeight="600"
    layout="vertical" 
    >

    <mx:Script>
        <![CDATA[
            private function doValidation():void{
                var itemsSelected:int = 0;

                for each(var checkBox:CheckBox in app.getChildren()){
                    if(checkBox.selected){
                        itemsSelected++;
                    }
                }

                if(itemsSelected == 0){
                    app.filters = [errorGlow];
                    app.toolTip = "You must select at least one value";
                }else{
                    app.filters = [];
                    app.toolTip = "";
                }
            }

            private function checkBoxClicked(e:Event):void{
                if((e.currentTarget as CheckBox).selected == true){
                    app.filters = [];
                    app.toolTip = "";
                }
            }
        ]]>
    </mx:Script>

    <mx:GlowFilter id="errorGlow"
        color="0xFF0000" blurX="5" blurY="5"
        />

    <mx:Form>
        <mx:FormItem id="app" 
            width="520"
            label="Application"
            >
            <mx:CheckBox id="checkBox1" label="Item 1" selected="false" click="checkBoxClicked(event)"/>
            <mx:CheckBox id="checkBox2" label="Item 2" selected="false" click="checkBoxClicked(event)"/>
            <mx:CheckBox id="checkBox3" label="Item 3" selected="false" click="checkBoxClicked(event)"/>
            <mx:CheckBox id="checkBox4" label="Item 4" selected="false" click="checkBoxClicked(event)"/>
            <mx:CheckBox id="checkBox5" label="Item 5" selected="false" click="checkBoxClicked(event)"/>
            <mx:CheckBox id="checkBox6" label="Item 6" selected="false" click="checkBoxClicked(event)"/>
            <mx:CheckBox id="checkBox7" label="Item 7" selected="false" click="checkBoxClicked(event)"/>
        </mx:FormItem>
    </mx:Form>
    <mx:Button  width="60" label="Send" id="submit" click="doValidation()" />

</mx:Application>
于 2012-10-24T20:20:29.120 に答える