点击后取消选择单选按钮列表

3
我需要取消单选按钮列表中的选择,我知道使用复选框更为合理,但管理层希望单选按钮未被选中。

1
.Checked = false - 你真的尝试过吗? - Sayse
请阅读文档,并查看RadioButton.Checked Property - tnw
@tnw - 这是关于winforms的文档。可能是指 这个 - Sayse
@Sayse 噢,没注意到是 Asp.Net 标签。谢谢提醒。 - tnw
8个回答

16

RadioButtonList控件是一个ListItem的集合。要清除控件中的一个单选按钮,您需要使用该特定项目的索引。要清除控件中的所有单选按钮,有一个名为“ClearSelection()”的方法。

  //To Unselect First Item
   RadioButtonList1.Items[0].Selected = false;

  //To unselect all Items
  RadioButtonList1.ClearSelection();

希望这能解决您的问题。


我已经使用了ClearSelection来重置表单。用户应该可以取消选中单选按钮。我有两个选项:1. 用户激活 2. 用户无效。 - Danny

3
private void Clear()
    {
        if(RadioButton1.Checked)
            {
                RadioButton1.Checked = false;
            }
     }

3
请使用以下内容:
RadioButton1.Checked = false;

2
myRadioButtonList.SelectedIndex = -1;

希望这能有所帮助。

0

WPF/C#

if (RadioBTN.IsChecked == true) {
    RadioBTN.IsChecked = false;
}

0

我遇到了同样的问题。在我的情况下,我使用单选按钮checkedChanged事件将医疗文档字符串片段自动附加到rich text box控件中。每个单选按钮选择的片段都不同,要求只能允许选择一个选项。因此,相对于复选框而言,单选按钮是最好的选择。问题是,如果用户想从文本框中删除所有文本片段,他/她可以手动从框中选择文本并将其删除--但至少有一个单选按钮仍将保持选中状态。

所以,我发现最简单的解决方法是向表单添加一个按钮,并使用它的_Click事件将指定的单选按钮的选中状态设置为false。

这是我的代码...

    // for rad 1
    private void rad_NoDifferent_CheckedChanged(object sender, EventArgs e) {
        if(rad_NoDifferent.Checked) {
            rtb_GSC_Notes.AppendText(sRating_NoDiffMsg);
            } else {
            rtb_GSC_Notes.Text = rtb_GSC_Notes.Text.Replace(sRating_NoDiffMsg, sNoMsg.TrimEnd());
            }
        }


    // for rad 2
    private void rad_VeryDifferent_CheckedChanged(object sender, EventArgs e) {
        if(rad_VeryDifferent.Checked) {
            rtb_GSC_Notes.AppendText(sRating_VeryDiffMsg);
            } else {
            rtb_GSC_Notes.Text = rtb_GSC_Notes.Text.Replace(sRating_VeryDiffMsg, sNoMsg.TrimEnd());
            }
        }


    // for rad 3
    private void rad_Unsure_CheckedChanged(object sender, EventArgs e) {
        if(rad_Unsure.Checked) {
            rtb_GSC_Notes.AppendText(sRating_UnsureMsg);
            } else {
            rtb_GSC_Notes.Text = rtb_GSC_Notes.Text.Replace(sRating_UnsureMsg, sNoMsg.TrimEnd());
            }
        }

    // for button reset
    private void btn_ClearRadioButtons_Click(object sender, EventArgs e) {
        rad_NoDifferent.Checked = false;
        rad_Unsure.Checked = false;
        rad_VeryDifferent.Checked = false;
        }

0

最近我遇到了同样的问题,但是我通过单选按钮找到了解决办法。 以下是单选按钮的aspx代码

<div>
    <asp:RadioButton ID="RadioButton1" GroupName="myg" onClick="clicked(this.id);" runat="server" />
    <asp:RadioButton ID="RadioButton2" GroupName="myg" onClick="clicked(this.id);"  runat="server" />
    <asp:RadioButton ID="RadioButton3" GroupName="myg" onClick="clicked(this.id);"  runat="server" />
    <asp:RadioButton ID="RadioButton4" GroupName="myg" onClick="clicked(this.id);"  runat="server" />
</div>

请在下方编写 JavaScript 代码。

<script type="type/javascript">

var arr = [];

function clicked(radid) {

var ra = document.getElementById(radid);
if (arr.indexOf(radid) < 0) {
    arr.splice(0, arr.length);
    arr.push(radid);
}
else {
    arr.splice(0, arr.length);
    ra.checked = false;

}
}
</script>

希望这能解决你的问题。

0

你的意思是希望单选按钮组可以没有任何选中值吗?从技术上讲,你只需要确保该组中没有任何单选按钮被选中即可。可以使用checked=""或者直接删除整个属性。

请注意,这是单选按钮组的无效状态。这就像一个布尔值既不是真也不是假一样。从语义上讲毫无意义,并违反了HTML规范。

如果你必须使用单选按钮组,则唯一有效的选择是包含一个代表“其他选项都不选”的单选按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接