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

jQuery提交表单时为已勾选复选框的前级隐藏输入赋值异常问题

问题根因
  • 选择器匹配逻辑错误:.prev()方法仅能匹配当前节点的直接前一个同级元素,你的复选框被包裹在<td>标签内,和.checkboxHandler隐藏输入不属于同一父节点,原有代码根本无法定位到对应的隐藏输入,赋值操作从未生效,所以提交的值一直是初始设置的0。
  • 缺少未选中状态的重置逻辑:原有代码仅处理了勾选状态的赋值,没有覆盖取消勾选的场景,即使选择器修复后,也会出现取消勾选后提交值仍为1的错误。
修复后可直接使用的代码
$(document).ready(function() {
  $('#frm').submit(function() {
    // 遍历所有表单内的复选框
    $('input[type="checkbox"]').each(function() {
      // 先定位到复选框所属的td,再查找td前对应的隐藏输入
      const $targetHidden = $(this).parent('td').prev('.checkboxHandler');
      // 按当前复选框状态赋值
      $targetHidden.val($(this).prop('checked') ? 1 : 0);
    });
  });
});

该实现天然支持动态新增的输入行,只要新增行保持隐藏输入在前、td包裹复选框在后的结构,无需额外修改代码即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:45:03