ASP.NET RadioButtonGroup的Javascript或JQuery

ASP.NET RadioButtonGroup的Javascript或JQuery,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我只需要从客户端的radiobuttongroup中获取所选索引。然而,我对Javascript/JQuery还很陌生,遇到了一些看起来很奇怪的行为。我在同一张表中有一个dropdownlist和一个radiobuttongroup。在我的脚本中,我有以下内容: var ddlStatuses = $find("<%= ddlStatuses.ClientID %>"); var rbgAssetClass = $find("<%= rbgAssetClass.ClientID

我只需要从客户端的radiobuttongroup中获取所选索引。然而,我对Javascript/JQuery还很陌生,遇到了一些看起来很奇怪的行为。我在同一张表中有一个dropdownlist和一个radiobuttongroup。在我的脚本中,我有以下内容:

var ddlStatuses = $find("<%= ddlStatuses.ClientID %>");
var rbgAssetClass = $find("<%= rbgAssetClass.ClientID %>");
var-ddlstatus=$find(“”);
var rbgAssetClass=$find(“”);
第一个$find正如我所期望的那样工作,但是第二个返回null

所以有两个问题。找到我的radiobuttongroup并获取其所选索引的最佳方法是什么?为什么$find在同一个表中查找这些控件中的一个而不是另一个

谢谢

编辑以显示aspx:

    <asp:Panel ID="pnlSelectRoom" CssClass="pnlSelectRoom" runat="server" Width="930px">
        <asp:Table ID="Table1" runat="server" class="tblSelectRoomLayout" Width="100%">
            <asp:TableRow>
                <asp:TableCell>
                    <asp:Label ID="Label6" runat="server" Text="Data Center" Font-Size="Small" </asp:Label>
                </asp:TableCell>
                <asp:TableCell>
                    <asp:DropDownList Width="225px" ID="ddlDataCenter" runat="server" onchange="PopulateRooms(this);"
                        ZIndex="9001" Font-Size="Small" DataValueField="Id" DataTextField="Name" >
                    </asp:DropDownList>
                </asp:TableCell>
                <asp:TableCell>
                    <asp:Label ID="Label7" runat="server" Text="Room" Font-Size="Small"></asp:Label>
                </asp:TableCell>
                <asp:TableCell>
                    <asp:DropDownList Width="225px" ID="ddlRooms" runat="server"  ZIndex="9001" Enabled ="false">
                    </asp:DropDownList>
                </asp:TableCell>
                <asp:TableCell>
                    <asp:Label ID="Label8" runat="server" Text="Asset Status"></asp:Label>
                </asp:TableCell>
                <asp:TableCell>
                    <telerik:RadComboBox Width="225px" runat="server" ID="ddlStatuses" DataValueField="ID"
                        DataTextField="Text" CheckBoxes="true" EnableCheckAllItemsCheckBox="True" ZIndex="9001" CausesValidation="false">
                    </telerik:RadComboBox>                        
                </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow Width="100%">
                <asp:TableCell ColumnSpan="6" HorizontalAlign="Center">
                    <asp:RadioButtonList CssClass="checkBoxAlign" ID="rbgAssetClass" runat="server" AutoPostBack="false"
                        RepeatDirection="Horizontal"
                        Font-Size="Small">
                        <asp:ListItem Selected="True">Base Assets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</asp:ListItem>
                        <asp:ListItem>Contained Assets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</asp:ListItem>
                        <asp:ListItem>SubContained Assets</asp:ListItem>
                        <asp:ListItem>All Assets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</asp:ListItem>
                    </asp:RadioButtonList>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>
    </asp:Panel>

你可以像下面这样做

在JavaScript中,控件的位置、内容页或母版页都无关紧要

<asp:CheckBoxList ID="chkModuleList"runat="server" />

<asp:CustomValidator runat="server" ID="cvmodulelist"
  ClientValidationFunction="ValidateModuleList"
  ErrorMessage="Please Select Atleast one Module" />

// javascript to add to your aspx page
function ValidateModuleList(source, args)
{
  var chkListModules= document.getElementById ('<%= chkModuleList.ClientID %>');
  var chkListinputs = chkListModules.getElementsByTagName("input");
  for (var i=0;i<chkListinputs .length;i++)
  {
    if (chkListinputs [i].checked)
    {
      args.IsValid = true;
      return;
    }
  }
  args.IsValid = false;
}
您可能希望在这些复选框的容器上添加(或使用)一个id,以优化选择器速度。

对于asp.net在控件上弄乱客户端ID,您可以使用

$('<%= MyControl.ClientID %>')
$(“”)
参考资料:


请注意,HTML中没有RadioButtonList,因此当您编写
时,$find(“”)您可能无法获得预期的结果。检查生成的HTML以查看要查找哪个ID,或添加有关要完成的任务的更多信息

是否可以使用readio按钮发布asp代码?好的,这很有意义。RadioButtonList呈现为具有相同ID的表。即使名称“MainContent\u ctl00\u rbgAssetClass”正确,但它不是具有项目列表的对象。这就是为什么我需要Shekhar的答案来获取输入。弄乱的不是ClientID,只是没有为radiobuttonlist渲染对象,只有一个RadioButton表。但是您提供的访问单选按钮并检查checked属性的方法非常有效。谢谢
$('<%= MyControl.ClientID %>')