我正在维护一些旧的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")