Как проверить группу переключателей? во флексе - PullRequest
1 голос
/ 17 марта 2010

Как проверить, установлен ли переключатель или нет в flex 3?

если мой вопрос неправильный, пожалуйста, предложите мне что-нибудь относительно проверки группы радио.

Ответы [ 4 ]

4 голосов
/ 10 апреля 2010

Просто используйте StringValidator:

        <mx:StringValidator id="myRadioButtonGroupValidator" 
        source="{myRadioButtonGroup}" 
        property="selectedValue" 
        required="true"/>
1 голос
/ 17 ноября 2011

Для групп Spark и RadioButtons все работает немного иначе. Смотрите пример ниже.

Примечание. Для группы HG, как показано в примере: предупреждение отображается для ошибок, но красная граница не будет видна. Если вы сами установите RadioButton в качестве прослушивателя, вы можете получить ужасный результат, а если вы зададите FormItem в качестве цели, вы ничего не увидите.

<fx:Declarations>

    <s:RadioButtonGroup id="myGroup" />

    <mx:StringValidator id="vLevel"
                        required="true"
                        source="{myGroup}"
                        property="selectedValue"
                        minLength="1"
                        maxLength="80"
                        listener="{grpLevel}"
                        />

</fx:Declarations>


<s:FormItem label="Level">
                <s:HGroup id="grpLevel">
                    <s:RadioButton group="{myGroup}" label="A"/>
                    <s:RadioButton group="{myGroup}" label="B"/>
                    <s:RadioButton group="{myGroup}" label="C"/>
                </s:HGroup>
</s:FormItem>                           
1 голос
/ 17 марта 2010

Так я решил проблему. Если что-то не так, пожалуйста, оставьте комментарий.

<mx:NumberValidator id="radiogroupValidator" source="{radiogroup}" property="selectedValue" allowNegative="false" />

источник радиогруппы в файле mxml

 <mx:RadioButtonGroup id="radiogroup"  itemClick="radiochangefunction(event)" selectedValue="-1" />

 <mx:RadioButton id="radiobtn1" groupName="radiogroup" label="Send Password to existing EmailId" value="0"/>
 <mx:RadioButton id="radiobtn2" groupName="radiogroup" label="Enter new EmailId" value="1"/>

Функция itemClick

public function radiochangefunction(event):void
{
   radiogroup.selectedValue=event.currentEvent.selectedValue.toString();     
}

и, наконец, в функции проверки

var isValidradiobutton:Boolean = (Validator.validateAll([radiogroupValidator]).length==0);
0 голосов
/ 17 марта 2010

Прослушивание события itemClick из RadioButtonGroup. В обработчике используйте свойство selection или selectedValue, чтобы узнать, какой RadioButton был нажат.

  • selection - возвращает ссылку на выбранный RadioButton экземпляр
  • selectedValue - возвращает свойство value выбранного RadioButton, если оно установлено. В противном случае возвращает текст label.

Оба эти свойства возвращают null, если не выбран RadioButton.

Работающий пример из aliveocs

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

    <mx:Script>
        <![CDATA[

        import mx.controls.Alert;
        import  mx.events.ItemClickEvent;

        // Event handler function to display the selected button
        // in an Alert control.
        private function handleCard(event:ItemClickEvent):void {
            if (event.currentTarget.selectedValue == "AmEx") {
                    Alert.show("You selected American Express") 
            } 
            else {
                if (event.currentTarget.selectedValue == "MC") {
                    Alert.show("You selected MasterCard") 
                } 
                else {
                    Alert.show("You selected Visa") 
                }
            } 
        }
        ]]>
    </mx:Script>

    <mx:Panel title="RadioButtonGroup Control Example" height="75%" width="75%" 
        paddingTop="10" paddingLeft="10">

        <mx:Label width="100%" color="blue" 
            text="Select a type of credit card."/>

        <mx:RadioButtonGroup id="cardtype" itemClick="handleCard(event);"/>
        <mx:RadioButton groupName="cardtype" id="americanExpress" value="AmEx" 
            label="American Express" width="150" />
        <mx:RadioButton groupName="cardtype" id="masterCard" value="MC" 
            label="MasterCard" width="150" />
        <mx:RadioButton groupName="cardtype" id="visa" value="Visa" 
            label="Visa" width="150" />

    </mx:Panel>        
</mx:Application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...