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

jQuery复选框价格计算修复:全选用固定价,未选则累加子项价格

修复复选框总价计算逻辑

核心思路很明确:先判断分类全选框是否被选中,选中就直接用它的固定价格;没选中时再累加选中子项的价格。以下是修复后的代码:

// 监听所有相关复选框的变化事件
$('.category-select-all, .category-item-checkbox').on('change', function() {
    let total = 0;
    const $selectAll = $('.category-select-all');
    
    // 检查全选框是否选中
    if ($selectAll.is(':checked')) {
        // 选中全选时,直接取全选框的价格
        total = parseInt($selectAll.data('harga'), 10);
    } else {
        // 未选中全选时,累加所有选中子项的价格
        $('.category-item-checkbox:checked').each(function() {
            total += parseInt($(this).data('harga'), 10);
        });
    }
    
    // 更新页面上的总价显示(替换成你实际的总价元素选择器)
    $('.total-price').text(total);
});

关键逻辑说明

  • 优先判断全选框状态:只要全选框选中,就忽略所有子项的选中状态,直接使用全选框的data-harga值
  • 未选中全选时,只遍历已选中的子项进行价格累加,避免无效计算
  • 用parseInt把data-harga的字符串值转为数字,防止出现字符串拼接的错误(比如"100"+"200"变成"100200")

另外需要注意:

  • 确保全选框和子项的选择器(.category-select-all、.category-item-checkbox)和你实际DOM结构中的类名匹配
  • 如果页面有多个分类组,要给每个组加独立的容器,避免不同组的复选框互相干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:12:37