在Flex中,有时候当你需要清除一个表单时,你会碰到单选按钮组似乎不容易清除的问题:无论你如何努力,设置所有按钮的selected=false,设置group为null,两者都做,两次都做等等,你似乎总是会留下一个讨厌的小单选按钮,它还是被选中状态。怎么解决这个问题并将单选按钮组恢复到初始的未选状态?
您需要将所有单选按钮分组为一个RadioButtonGroup,然后将组选择设置为null:
<mx:RadioButtonGroup id="myGroup" />
<mx:RadioButton label="One" groupName="myGroup" />
<mx:RadioButton label="Two" groupName="myGroup" />
<mx:RadioButton label="Three" groupName="myGroup" />
<mx:Button label="Clear" click="myGroup.selection = null;" />
RadioButtonGroup
,然后将RadioButtonGroup.selection设置为null。RadioButtonGroup
控件的参考。这个不起作用吗?
function clearRadioSelection(theGroup) {
theGroup.selection.selected = false;
theGroup.selectedRadio = undefined;
theGroup.dispatchEvent({type:"change"});
}
theGroup 是单选按钮组(而不是单个单选按钮)
来自:http://kb2.adobe.com/cps/000/c4e4be2f.html只需将radioButtonGroup的selection属性设置为null,它就会返回到初始状态。
例如,如果
<mx:RadioButtonGroup id="answers" />
然后在 ActionScript 中编写以下代码:
answers.selection = null;
将重置组,没有选中的单选按钮。希望能帮到你。我从以下链接中得到了这个想法。祝你好运。
http://blog.flexexamples.com/2008/01/06/clearing-a-selected-radiobutton-control-in-flex/
我相信你正在使用RadiobuttonGroup并绑定特定组的所有单选按钮控件。
因此,简单的方法是:
private function radioGroupReset():void
{
radioGroup1.selection = null;
}
这应该可以工作!
显然,前面的答案应该以最简洁的方式帮助你解决问题,但如果你一直在苦苦思索,只需将所有单选按钮收集到一个组件中,然后在需要清除时重新绘制整个组件即可。问题解决了。
表单本来就很麻烦,没有必要让生活变得更加艰难。