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

勾选指定checkbox时如何禁用同一行多个checkbox与textarea?

解决方案

你之前用getElementsByClassName调试失败和输入元素类型无关,是因为该方法返回的是类数组的元素集合,不能直接对整个集合设置disabled属性,需要遍历每个元素单独设置。下面是可直接复用的通用方案:

1. 修改行首触发checkbox的事件参数

将你现有行首checkbox的onchange属性修改为传入元素本身:

<input name="aaa" onchange="disableRowInputs(this)" type="checkbox" />

2. 新增通用禁用函数

页面任意位置添加这段JS即可,所有表格行都可以复用,不需要单独给每行写逻辑:

function disableRowInputs(triggerCheckbox) {
  // 定位到当前checkbox所在的表格行
  const currentRow = triggerCheckbox.closest('tr');
  // 选中当前行内所有input、textarea元素
  const rowInputs = currentRow.querySelectorAll('input, textarea');
  // 遍历所有元素,跳过触发用的第一个checkbox,其他同步禁用状态
  rowInputs.forEach((item, index) => {
    if (index !== 0) {
      item.disabled = triggerCheckbox.checked;
    }
  })
}

完整可运行示例

<table>
  <!-- 表格行1 -->
  <tr>
    <td style="vertical-align:middle;text-align: center;">
      <input name="row1_check" onchange="disableRowInputs(this)" type="checkbox" />
    </td>
    <td style="vertical-align:middle;text-align: center;">
      <input name="row1_opt1" type="checkbox" />
    </td>
    <td style="vertical-align:middle;text-align: center;">
      <textarea name="row1_remark" rows="3"></textarea>
    </td>
  </tr>
  <!-- 表格行2 直接复用相同逻辑 -->
  <tr>
    <td style="vertical-align:middle;text-align: center;">
      <input name="row2_check" onchange="disableRowInputs(this)" type="checkbox" />
    </td>
    <td style="vertical-align:middle;text-align: center;">
      <input name="row2_opt1" type="checkbox" />
    </td>
    <td style="vertical-align:middle;text-align: center;">
      <textarea name="row2_remark" rows="3"></textarea>
    </td>
  </tr>
</table>

<script>
function disableRowInputs(triggerCheckbox) {
  const currentRow = triggerCheckbox.closest('tr');
  const rowInputs = currentRow.querySelectorAll('input, textarea');
  rowInputs.forEach((item, index) => {
    if (index !== 0) {
      item.disabled = triggerCheckbox.checked;
    }
  })
}
</script>

如果有不需要参与禁用的输入元素,只要修改querySelectorAll的选择器,或者在遍历的时候加额外判断条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 10:18:02