表格选中复选框记录ID获取失败,求解决方案
问题解决:表格选中记录ID获取及全选功能实现
问题分析
当前代码存在两个核心问题:
- 全选复选框
#kisitselectall未绑定事件,点击后无法批量选中/取消所有行的复选框 - 获取选中ID的JS函数
seciliDatalar逻辑错误:循环中每次都取第一个.kisitsec元素的data-idd,而非当前选中复选框对应的ID
修复后的完整代码
HTML 表格(修正细节问题,核心结构保留)
<table id="kisitListesi" class="table mb-0 table-center"> <thead> <tr> <th class="border-bottom text-start py-3"><input id="kisitselectall" type="checkbox" /> Tümünü Seç</th> <th class="border-bottom text-start py-3">Şirket</th> <th class="border-bottom text-start py-3">Kullanıcı</th> <th class="border-bottom text-start py-3">Kısıt</th> <th class="border-bottom text-center py-3">Diğer</th> </tr> </thead> <tbody> @foreach (var item in AdminStatic.stokKisitiOlanKullanicilar()) { <tr class="shop-list"> <td class="border-bottom text-start py-3"><input class="kisitsec" data-idd="@item.ID" type="checkbox" /></td> <td>@AdminStatic.GetKullaniciIsletme(Convert.ToInt32(item.Isletme)).IsletmeAdi</td> <td>@item.AdSoyad</td> <td>@item.Kisit</td> <td class="text-center"> <span class="badge rounded-pill bg-success"> <a style="color:white; margin:auto;" href="javascript:void(0)" onclick="KisitDuzenle(@item.ID)"> <i class="uil uil-edit"></i> </a> </span> <span class="badge rounded-pill bg-danger"> <a style="color:white; margin:auto;" href="javascript:void(0)" onclick="silKisit(@item.ID)"> X </a> </span> </td> </tr> } </tbody> </table>
(注:顺带修复了KisitDuzenle函数的括号缺失问题,以及删除按钮的空onclick逻辑,补充为silKisit(@item.ID))
JavaScript 代码(修复ID获取逻辑+添加全选功能)
// 全选/取消全选功能 $('#kisitselectall').on('click', function() { var isChecked = $(this).is(':checked'); $('.kisitsec').prop('checked', isChecked); }); // 获取选中记录ID的函数 function seciliDatalar() { var result = []; // 仅选中带有kisitsec类的复选框,排除全选按钮 $('.kisitsec:checked').each(function() { // 获取当前选中元素的data-idd属性 result.push($(this).attr('data-idd')); }); alert('选中的ID:' + result.join(', ')); // 如需返回结果供其他函数调用,可添加return result; }
关键修复点说明
- 全选功能:给
#kisitselectall绑定点击事件,根据其选中状态批量设置所有.kisitsec复选框的选中状态 - ID获取逻辑:
- 筛选器改为
.kisitsec:checked,避免选中全选按钮本身 - 在
each循环中用$(this)指代当前循环到的选中复选框,获取其自身的data-idd值,而非固定取第一个元素的属性
- 筛选器改为
内容的提问来源于stack exchange,提问作者Ahmet Enes Söylemez
相关产品推荐
相关产品推荐

