Как проверить группу переключателей? во флексе
Я новичок в Flex, кто-нибудь может сказать, как проверить, выбран ли переключатель или нет в Flex 3
если мой вопрос неправильный, пожалуйста, предложите мне что-нибудь относительно проверки группы радио
Пожалуйста, помогите мне...........
4 ответа
Просто используйте StringValidator:
<mx:StringValidator id="myRadioButtonGroupValidator"
source="{myRadioButtonGroup}"
property="selectedValue"
required="true"/>
Для групп Spark и RadioButtons все работает немного иначе. Смотрите пример ниже.
Примечание. Для HGroup, как показано в примере: при возникновении ошибок появится предупреждение, но не будет видимой красной границы. Если вы сами установите 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>
Так я решил проблему. Если что-то не так, пожалуйста, оставьте комментарий.
<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);
Слушать itemClick
событие RadioButtonGroup
, В обработчике используйте selection
или же selectedValue
свойство знать, какие RadioButton
была нажата.
selection
- возвращает ссылку на выбранныйRadioButton
примерselectedValue
- возвращаетvalue
свойство выбранногоRadioButton
, если оно установлено. В противном случае возвращает егоlabel
текст.
Оба эти свойства возвращают null
если нет RadioButton
выбран.
Бегущий пример от liveocs
<?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>