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

jQuery点击复选框设置相邻隐藏input值时空值赋值失效问题

问题根因

判断条件存在逻辑错误:使用jQuery的.val()方法获取未赋值input的value时,返回值是空字符串'',而非null。
原代码中$(this).next().val() != null的判断永远成立——即使隐藏域已经被置空,空字符串与null比较的结果也是不相等,因此每次点击复选框都会触发置空逻辑,永远无法进入赋值的else分支,最终表现为空值状态下点击无反应。

修复代码

建议给next()方法显式传入.comp-id选择器,避免后续DOM结构调整(如两个元素间插入文本节点、其他标签、注释)时匹配到错误元素,最终可正常运行的代码如下:

$(document).on('change', '.comp-checkk', function() {
  const $hiddenInput = $(this).next('.comp-id');
  if ($hiddenInput.val() !== '') {
    $hiddenInput.val('');
  } else {
    $hiddenInput.val($(this).val());
  }
});
匹配的HTML结构示例
<input type="checkbox" class="comp-checkk" value="45164c0b-fc92-4f93-9c62-ea61336130eb">
<input type="hidden" class="comp-id" name="component_id[]" value="45164c0b-fc92-4f93-9c62-ea61336130eb"> 

<input type="checkbox" class="comp-checkk" value="45164c0b-fc92-4f93-9c62-ea61336130eb">
<input type="hidden" class="comp-id" name="component_id[]">

<input type="checkbox" class="comp-checkk" value="45164c0b-fc92-4f93-9c62-ea61336130eb">
<input type="hidden" class="comp-id" name="component_id[]">

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:45:43