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

表格单选框选中YES时的边框与错误提示功能问题

解决方案:单选框选中后的行边框与错误提示修复

针对你遇到的两个问题,直接修改代码即可解决,具体说明和修改后的代码如下:

问题1:选中YES时为整行添加边框

原代码中$(this).parent().parent()仅定位到单选框所在的<td>单元格,要选中整行,需用closest('tr')找到当前单选框所在的<tr>元素,再给该行的所有<td>设置边框(直接给<tr>加边框可能因表格默认样式不生效,优先给子元素<td>设置更稳妥)。

问题2:修复选中YES时错误提示不生效的问题

原代码查找.medical_error_message的范围是当前<td>,但提示框实际在同一行的第一个<td>内,所以需要先定位到<tr>,再在该行内查找提示元素,才能准确找到对应位置的提示框。

修改后的完整代码

JavaScript 代码

// YES 单选框点击事件
$('[id^="id_0-medical_question"][id$="_0"]').click(function() {
  // 定位当前行
  const $row = $(this).closest('tr');
  // 给行内所有单元格添加边框
  $row.find('td').css({
    'border': '2px solid #da4f49'
  });
  // 在当前行内找到错误提示框并设置内容
  $row.find('.medical_error_message').html('Error - you do not like this');
});

// NO 单选框点击事件
$('[id^="id_0-medical_question"][id$="_1"]').click(function() {
  const $row = $(this).closest('tr');
  // 恢复行内所有单元格的默认样式
  $row.find('td').css({
    'border': '1px solid #ddd',
    'color': '#000000',
    'font-weight': 'normal'
  });
  // 清空错误提示内容
  $row.find('.medical_error_message').html('');
});

HTML 代码(仅添加表格边框合并样式,其余结构不变)

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>

<table class="table" style="border-collapse: collapse;">
  <tbody>
    <tr>
      <td class="medical_question"><b>1. Do you like</b></td>
      <td>YES</td>
      <td>NO</td>
    </tr>

    <tr>
      <td class="medical_question">
        1. Red hair
        <p class="medical_error_message"></p>
      </td>

      <td><label for="id_0-medical_question1_0"><input type="radio" name="0-medical_question1" value="1" required="" id="id_0-medical_question1_0">
     YES</label>
      </td>

      <td><label for="id_0-medical_question1_1"><input type="radio" name="0-medical_question1" value="0" required="" id="id_0-medical_question1_1">
     NO</label>
      </td>
    </tr>

    <tr>
      <td class="medical_question">
        2. Blond hair
        <p class="medical_error_message"></p>
      </td>

      <td><label for="id_0-medical_question2_0"><input type="radio" name="0-medical_question2" value="1" required="" id="id_0-medical_question2_0">
     YES
    </label>
      </td>

      <td><label for="id_0-medical_question2_1"><input type="radio" name="0-medical_question2" value="0" required="" id="id_0-medical_question2_1">
     NO</label>
      </td>
    </tr>
</tbody>
</table>

说明:给<table>添加border-collapse: collapse;样式,确保单元格边框合并显示,让整行边框效果更连贯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 19:47:51