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

如何在checkbox勾选时启用/禁用对应文本框(数据库生成多复选框场景)

实现方案

原有代码的问题是全局选择器$('.checks')会匹配所有文本框,导致勾选任意复选框时所有文本框都会被同步启用/禁用,调整为仅操作当前复选框对应的目标文本框即可:

修正后的JS代码

$(function() {
  $('.check').on('click', function() {
    // 定位当前复选框对应的相邻文本框
    const $targetInput = $(this).next('.checks');
    if ($(this).prop('checked')) {
      $targetInput.removeAttr('disabled').focus();
    } else {
      $targetInput.attr('disabled', 'disabled').val('');
    }
  });
});

无需改动的HTML结构

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="check"> Aldrin
<input type="text" class="checks" disabled>

<input type="checkbox" class="check"> Dafne
<input type="text" class="checks" disabled>

<input type="checkbox" class="check"> Diane
<input type="text" class="checks" disabled>

如果实际业务中生成的DOM结构里文本框和复选框不是直接相邻,可以替换$(this).next('.checks')为$(this).nextAll('.checks').eq(0),同样可以精准匹配到对应文本框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:09:01