2

问候,如何使用 jquery 从复选框列表控件中获取复选框的选定索引?

更新:

此代码给我选择的索引等于 0 请建议

<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);


            });
        }
4

3 回答 3

6

对集合使用选择器,然后将 index 与您感兴趣的元素一起使用,这里是选中的元素。

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); 

});  
于 2010-05-21T17:06:35.283 回答
0

像这样,如果您需要最后选择的复选框的索引

var query = (from o in CheckBoxList1.Items.OfType<ListItem>()  
                     where o.Selected  
                     select o).Take(1).Reverse().ToList();   
于 2010-05-21T17:04:43.963 回答
0
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.
});

我没有对此进行测试,但它类似于此代码。希望对你有帮助

于 2010-05-21T17:14:15.257 回答