【问题标题】:In Flex, how do I deselect all radio buttons in a group?在 Flex 中,如何取消选择组中的所有单选按钮?
【发布时间】:2009-10-01 18:56:17
【问题描述】:

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

【问题讨论】:

    标签: apache-flex radio-button


    【解决方案1】:

    您需要将所有单选按钮分组为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;" />
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,这适用于简单的测试应用程序。它还可以在选定的单选按钮上设置 selected=false。但是我遇到了这两种解决方案都不起作用的情况。我很抱歉这么含糊。假期回来后,我会看看能不能挖掘代码并制作一个演示。
      【解决方案3】:

      据我所知,解决此问题的唯一方法是添加一个隐藏的虚拟单选按钮,您选择该按钮以取消选择所有其他按钮。

      【讨论】:

        【解决方案4】:

        这不行吗?

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

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

        【讨论】:

        • 对不起,那必须是旧代码。没有“selectedRadio”属性,不能像那样调度事件。
        【解决方案5】:

        我相信您正在使用 RadiobuttonGroup 并为特定组绑定所有单选按钮控件。

        所以,简单的方法:

        私有函数radioGroupReset():void

        {

        radioGroup1.selection = null;

        }

        这应该可行!

        【讨论】:

          【解决方案6】:

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

          无论如何,表单充其量是 gimpy。没有必要让生活变得太艰难。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 2012-08-16
              • 1970-01-01
              • 2013-05-22
              • 2016-02-10
              • 2020-03-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多