在Flex中,如何取消选择组中的所有单选按钮?

时间:2009-07-06 15:36:01

标签: flex radio-button

在Flex中,有时当您需要清除表单时,您会遇到单选按钮组似乎无法清除的问题:尽可能尝试,在所有按钮上设置selected = false,在组上设置selection = null,无论是两次,等等,你似乎总是得到一个仍然被选中的讨厌的小单选按钮。你如何解决这个问题并将单选按钮组恢复到其初始的无选择状态?

7 个答案:

答案 0 :(得分:12)

您需要将所有单选按钮分组为RadioButtonGroup,然后将组选择设置为空:

<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;" />

答案 1 :(得分:1)

您可以尝试将所有单选按钮设置为RadioButtonGroup,然后将RadioButtonGroup.selection设置为null

有关如何实施RadioButtonGroup控件的参考,请参阅http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html#includeExamplesSummary

答案 2 :(得分:0)

解决这个问题的唯一方法就是添加一个隐藏的虚拟单选按钮,以便取消选择所有其他按钮。

答案 3 :(得分:0)

这不起作用吗?

      function clearRadioSelection(theGroup) {
        theGroup.selection.selected = false;
        theGroup.selectedRadio = undefined;
        theGroup.dispatchEvent({type:"change"});
  }

theGroup是单选按钮组(不是单独的单选按钮) 来自:http://kb2.adobe.com/cps/000/c4e4be2f.html

答案 4 :(得分:0)

我相信您正在使用RadiobuttonGroup并将所有radiobutton控件绑定到特定组。

所以,简单的方法:

private function radioGroupReset():void

{

radioGroup1.selection = null;

}

这应该有效!

答案 5 :(得分:0)

显然以前的答案应该让你以最干净的方式前往,但如果你的头靠在墙上,只需将所有的单选按钮收集到一个组件中,然后在需要时重新绘制整个组件清除它。问题解决了。

无论如何,表格至多是懦弱的。不需要过分努力。

答案 6 :(得分:0)

只需将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/