0

嘿伙计们,我有一个页面,其中包含多个单选按钮列表和每个列表的清除选择按钮,如果按下则清除列表。问题出在我当前的代码上,如果我按下清除选择按钮,它会清除页面上的所有单选按钮列表。如何修改我的代码以清除我想要的单选按钮列表。这是代码片段。

<asp:RadioButtonList ID="rdoQuestionChoice" runat="server" Visible="false" CssClass="Aligntext" OnSelectedIndexChanged="ddlChoiceList_SelectedIndexChanged" />

<asp:Button ID="clearRdoQuestionChoice" runat="server" Visible="false" Text="Clear Selection" OnClientClick="clearRdoQuestionChoice_ClearRadioList(); return false;" />

<script language="javascript" type="text/javascript">
   function clearRdoQuestionChoice_ClearRadioList() {
       $("table[id$=rdoQuestionChoice] input:radio").each(function (i, x) {
           if ($(x).is(":checked")) {
               $(x).removeAttr("checked");
           }
       });
   }
</script>
4

2 回答 2

0

您是否尝试过仅更改单选按钮列表的选择索引?像这样->

C#(已测试)

rdoQuestionChoice.SelectedIndex = -1

Javascript(未测试)

window.addEvent('domready', function() {
         $("rdoQuestionChoice").checked = false;
});

或者您可以在这里查看更多信息和其他 javascript 函数:http ://www.tek-tips.com/viewthread.cfm?qid=1436752

于 2013-04-08T15:10:57.933 回答
0

我能够解决这个问题。

在我的底层 .cs 类中,我在 Page_Load(object sender, EventArgs e) 函数中添加了以下代码行

clearRdoQuestionChoice.OnClientClick = "clearRdoQuestionChoice_ClearRadioList('" + rdoQuestionChoice.ClientID + "')";

在我的 javascript 函数中,我做了以下更改

function clearRdoQuestionChoice_ClearRadioList(radioButtonListID) {
    var elementRef = document.getElementById(radioButtonListID);
    var inputElementArray = elementRef.getElementsByTagName('input');

    for (var i = 0; i < inputElementArray.length; i++) {
        var inputElement = inputElementArray[i];
        inputElement.checked = false;
    }
    return false;
}

我将 .aspx 类更改为以下内容。我基本上从 asp:button 中删除了 OnClientClick 属性

<asp:RadioButtonList ID="rdoQuestionChoice" runat="server" Visible="false" CssClass="Aligntext"                            OnSelectedIndexChanged="ddlChoiceList_SelectedIndexChanged" />
<asp:Button ID="clearRdoQuestionChoice" runat="server" Visible="false" Text="Clear Selection" />
于 2013-04-08T17:21:48.160 回答