如何使用jquery从checkboxlist控件获取复选框的选定索引?
您好, 如何使用jquery从checkboxlist控件中获取selectedindex of复选框 更新: 此代码为我选择的索引等于0,请注意如何使用jquery从checkboxlist控件获取复选框的选定索引?,jquery,checkboxlist,Jquery,Checkboxlist,您好, 如何使用jquery从checkboxlist控件中获取selectedindex of复选框 更新: 此代码为我选择的索引等于0,请注意 <asp:CheckBoxList ID="chkListGroups" runat="server" style="position:absolute; top: 1115px; left: 745px; bottom: 371px;" DataSourceI
<asp:CheckBoxList ID="chkListGroups" runat="server"
style="position:absolute; top: 1115px; left: 745px; bottom: 371px;"
DataSourceID="SqlDSGroups" DataValueField="Groups"
onclick="test()">
</asp:CheckBoxList>
....................
java script function
.....................
function test(){
$('#<%=chkListGroups.ClientID %>').click(function() {
var selectedIndex = $('#<%=chkListGroups.ClientID %>').index($(this));
alert(selectedIndex);
});
}
如果需要上一个选中复选框的索引,也可以这样做
var query = (from o in CheckBoxList1.Items.OfType<ListItem>()
where o.Selected
select o).Take(1).Reverse().ToList();
对集合使用选择器,然后对感兴趣的元素(这里是选中的元素)使用索引
var checkboxes = $('input:checkbox');
var selectedIndex = checkboxes.index(checkboxes.find(':checked'));
要获取已单击复选框的索引,请使用:
$('input:checkbox').click( function() {
var selectedIndex = $('input:checkbox').index( $(this) );
... now do something with it...
});
编辑:基于您的代码示例:
var checkboxes = $('#<%=chkListGroups.ClientID %>').find('input:checkbox');
checkboxes.click(function() {
var selectedIndex = checkboxes.index($(this));
alert(selectedIndex);
});
我还没有测试过这个,但它类似于这个代码。我希望它能帮助你你是在说ASP.Net吗?@SLaks:如果是客户端,那就没什么关系了。@R0MANARMY:这取决于复选框列表是什么。我正在使用ASP.Net复选框列表,但我想使用jqueryOMFG在客户端获取所选索引!所有这些代码都是为了得到一个选定的索引?!你应该考虑其他的编程语言,伙计……这是怎么让你选择索引的?这是一个非常奇怪的方法来获取包含第一个选定元素的列表。我错了,这只会给你选定项目的最后一个索引……哦,你不觉得这是一个很大的开销吗?@VoodooChild:所以问题是关于获取选定项目的客户端,因为你的代码是服务器端的C代码。此外,您的代码只返回元素,而不是问题所要求的列表中元素的索引。最后,如果问题是关于获取列表中的第一个选定元素,使用CheckBoxList1.Items.OfType.FirstOrDefault s=>s.Selected可以更容易地获取它。我想要的确切内容是所单击对象的索引checkbox@Eyla-我添加了一个单击处理程序的示例,该处理程序将为您提供单击复选框的索引。@tvanfosson我使用您的代码获取所选索引,但我始终获取0索引无论我选择了哪个复选框。有什么建议吗???@Eyla-第一个还是第二个样本?第二个将为您提供正在单击的一个。第一个会给你第一个选中的。@tvanfosson第二个总是给我选择的索引=0。请参阅主要问题中的更新代码。你知道jQuery每个函数都已经为你跟踪了索引,并将其作为参数传递到回调中,所以你不需要手动保持计数,对吧?事实上,我不知道。谢谢你的评论。
get value: $("input:checked").val();
get id: $("input:checked").attr('id');
//or this:
var counter=0;
$('input:checkbox').each(function(){
if($(this).is(":checked"))
{
var Index = counter;
}
else{
counter++;
}
//So Index is what you want.
});