从jQuery中获取从ASP:RadioButtonList获取所选值的属性



我正在维护一些旧的C#代码,并且有一个ASP:radiobuttonlist ...

<asp:RadioButtonList AutoPostBack="false" TextAlign="Right" RepeatDirection="Horizontal" RepeatLayout="Flow" runat="server" ID="radIncidentType" />

...在后面的代码中填充了:

    public static void PopulateRBL(string ListName, ref RadioButtonList ListToPopulate)
    {
        List<Lookup> radioList = GetLookup(ListName);  //returns
        foreach (Lookup entry in radioList)
        {
            ListItem item = new ListItem(" " + entry.Description + " ", entry.Code);
            item.Attributes.Add("ItemId", entry.Id.ToString());
            ListToPopulate.Items.Add(item);
        }
    }

因此,添加的每个项目都有一个描述,代码和额外的属性ItemId

然后在OnChange上执行了一些验证,必须询问itemID属性。目前是这样的:

$('#ctl00_cphPage_radIncidentType input[type=radio]:checked').closest('span').attr('ItemId')

直到我添加了一个嵌套的主页并使其正常工作,我必须将选择器更改为:

$('#ctl00_ctl00_cphPage_nestedPage_radIncidentType input[type=radio]:checked').closest('span').attr('ItemId')

显然我想要一个整洁的选择器,我尝试了:

$('#<%= radIncidentType.ClientID %> input[type=radio]:checked').closest('span').attr('ItemId')

和...

$("input[name='<%=radIncidentType.UniqueID%>']:radio:checked").closest('span').attr('ItemId')

...但是都没有工作。谁能提出一种获得该 ItemId属性值的方法?

当您想要ItemId的值时,还不清楚。但是在此片段中

<script type="text/javascript">
    $('#<%= radIncidentType.ClientID %> input[type="radio"]').click(function () {
        var ItemId = $(this).closest('span').attr("ItemId");
        alert(ItemId);
    });
</script>

或外部触发功能以从所选的RadioButton获取属性。

<script type="text/javascript">
    function getItemIdFromRadioButtonList() {
        $('#<%= radIncidentType.ClientID %> input[type="radio"]:checked').each(function () {
            var ItemId = $(this).closest('span').attr("ItemId");
            alert(ItemId);
        });
    }
</script>

我尝试了以下操作,并根据需要起作用...

$("[id$='_radIncidentType'] input[type=radio]:checked").closest('span').attr("ItemId")

最新更新