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

ASP.NET Core 5 MVC 视图中如何获取表格勾选行的Empid?

解决获取表格勾选行Empid的方案

你之前给input添加相同name属性仅能获取到第一个ID的原因是:多个同name的表单元素提交时,浏览器默认只会传递第一个值,除非你给name添加[]后缀声明为数组(比如name="selectedEmp[]"),但需要后端对应调整接收逻辑,下面给出更灵活的前端实现方案:


方案1:优先推荐(修改少量视图代码,后续取值更高效)

第一步修改视图中复选框的渲染代码,给复选框添加统一类名,直接把Empid存入value属性:

<td><input type="checkbox" class="emp-checkbox" value="@pxempItem.Empid" /></td>

第二步用JS取值即可,以下两种任选:

原生JavaScript实现

function getSelectedEmpIds() {
  const checkedList = document.querySelectorAll('.emp-checkbox:checked');
  const empIdList = Array.from(checkedList).map(item => item.value);
  // empIdList就是所有选中的Empid数组,可直接用于后续逻辑
  return empIdList;
}

jQuery实现(项目已引入jQuery时使用)

function getSelectedEmpIds() {
  const empIdList = $('.emp-checkbox:checked').map(function() {
    return $(this).val();
  }).get();
  return empIdList;
}

方案2:无需修改现有视图代码

如果不方便调整现有视图的结构,可以直接遍历勾选框所在行提取第二列的Empid:

function getSelectedEmpIds() {
  const checkedBoxes = document.querySelectorAll('#tableOp tbody input[type="checkbox"]:checked');
  const empIdList = Array.from(checkedBoxes).map(box => {
    const currentRow = box.closest('tr');
    return currentRow.querySelector('td:nth-child(2)').textContent.trim();
  });
  return empIdList;
}

内容的提问来源于stack exchange,提问作者Miguel V

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:36:03