Link to home
Start Free TrialLog in
Avatar of hallikpapa
hallikpapa

asked on

RadioButtonGroup validation

I get the error:

Error #1069: Property selectedItem not found on mx.controls.RadioButtonGroup and there is no default value.

Flex doesn't seem to have anything specific for radio buttons. So how would I handle this? The default value for report.attended = -1


<mx:NumberValidator source="{attended}" property="selectedItem" allowNegative="false"/>
 
<mx:FormItem required="true" verticalGap="0" enabled="{editMode}">
	<mx:RadioButtonGroup id="attended" selectedValue="{report.attended}"/>
	<mx:RadioButton groupName="attended" label="Yes"  value="1"/>
	<mx:RadioButton groupName="attended" label="No"  value="0"/>
</mx:FormItem>

Open in new window

Avatar of Fuzzy_Logic_
Fuzzy_Logic_
Flag of United Kingdom of Great Britain and Northern Ireland image

change:

 property="selectedItem"

to

 property="value"

Although I can't see why you need a NumberValidator since the value will either be 1 or 0.
ASKER CERTIFIED SOLUTION
Avatar of Fuzzy_Logic_
Fuzzy_Logic_
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of hallikpapa
hallikpapa

ASKER

I added just that one validator, and I got "cannot access null property or reference"

I don't need numbervalidator, just trying different options
see amendment above.
Sorry, I should have included I entered selectedValue
This is what it looks like now, and it still gives me an error:
private function _validate():void
{
        if(Validator.validateAll(promoCodeValidators).length > 0)
	{
		var err:ValidationResultEvent;
        var errorMessageArray:Array = [];
        var validatorErrorArray:Array = Validator.validateAll(promoCodeValidators);
        for each (err in validatorErrorArray) 
        {
            //ERROR HERE ONLY FOR THE RADIO BUTTON GROUP
            var errField:String = FormItem(err.currentTarget.source.parent).label
            errorMessageArray.push("* " + errField); 
        }
        Alert.show(errorMessageArray.join("\n"), "The following required fields must be completed before submission:", Alert.OK);
        coversheetShow = false;
		return;
	}
}
 
 
<mx:FormItem required="true" verticalGap="0" enabled="{editMode}">
	<mx:RadioButtonGroup id="attended" selectedValue="{report.attended}"/>
	<mx:RadioButton groupName="attended" label="Yes" value="1" />
	<mx:RadioButton groupName="attended" label="No" value="0" />
</mx:FormItem>
 
<mx:StringValidator source="{attended}" property="selectedValue" required="true"/>

Open in new window

the error is thrown, I believe, because report.attended is null.

If you were to enter a number instead, the code would work.

You need to make sure report.attended has a value.
the default value for report (ReportVO) is -1

I will do some further investigation, but you are probably right.