使用 jQuery 从 asp:RadioButtonList 获取所选值的属性
Getting attribute for selected value from asp:RadioButtonList with jQuery
我正在维护一些旧的 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
。
然后对必须询问 ItemId 属性的 onChange 执行一些验证。目前是这样的:
$('#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
的值时不是很清楚。但是在这个片段中,一个侦听器被添加到 RadioButtonList 并在单击 RadioButton 时获取属性。
<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")
我正在维护一些旧的 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
。
然后对必须询问 ItemId 属性的 onChange 执行一些验证。目前是这样的:
$('#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
的值时不是很清楚。但是在这个片段中,一个侦听器被添加到 RadioButtonList 并在单击 RadioButton 时获取属性。
<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")