You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表格选中复选框记录ID获取失败,求解决方案

问题解决:表格选中记录ID获取及全选功能实现

问题分析

当前代码存在两个核心问题:

  1. 全选复选框#kisitselectall未绑定事件,点击后无法批量选中/取消所有行的复选框
  2. 获取选中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获取逻辑:
    1. 筛选器改为.kisitsec:checked,避免选中全选按钮本身
    2. 在each循环中用$(this)指代当前循环到的选中复选框,获取其自身的data-idd值,而非固定取第一个元素的属性

内容的提问来源于stack exchange,提问作者Ahmet Enes Söylemez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:47:52