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

如何修改价格计算器:切换月度时Info弹窗价格上浮20%

问题解决:价格计算器弹窗价格适配支付方式需求

已知现有代码中calcSum函数已经根据支付类型生成了percent系数(月度支付为1.2,年度支付为1),但弹窗价格渲染函数printPreisstaffel未应用该系数,以下是具体修改方案:

需要修改的函数及实现步骤

1. 改造printPreisstaffel函数,支持传入价格系数

原本的printPreisstaffel直接渲染原始价格档位,现在需要给它添加参数接收percent,在计算显示价格时乘以该系数,确保弹窗价格随支付类型动态调整:

function printPreisstaffel(percent) {
  // 假设preisstaffel是存储价格档位的数组
  preisstaffel.forEach(grade => {
    // 计算调整后的价格,保留两位小数保证格式统一
    const adjustedPrice = (grade.basePrice * percent).toFixed(2);
    // 替换弹窗中对应档位的价格显示
    document.querySelector(`.price-item[data-id="${grade.id}"]`).textContent = `${adjustedPrice} €`;
  });
}

2. 修改Info按钮的触发逻辑,传入对应系数

点击Info按钮弹出弹窗时,先获取当前选中的支付类型,计算出对应的percent系数,再传给printPreisstaffel:

document.getElementById('info-btn').addEventListener('click', () => {
  // 获取当前选中的支付方式
  const selectedPayment = document.querySelector('input[name="payment-type"]:checked').value;
  // 复用现有逻辑生成系数
  const percent = selectedPayment === 'monthly' ? 1.2 : 1;
  // 先更新弹窗价格,再显示弹窗
  printPreisstaffel(percent);
  document.getElementById('price-grade-modal').style.display = 'block';
});

3. (可选)支付类型切换时实时更新弹窗价格

如果用户在弹窗打开时切换支付方式,需要同步更新弹窗内的价格,给支付类型的单选框添加change事件监听:

document.querySelectorAll('input[name="payment-type"]').forEach(radio => {
  radio.addEventListener('change', () => {
    const percent = radio.value === 'monthly' ? 1.2 : 1;
    // 只有弹窗显示时才更新价格
    if (document.getElementById('price-grade-modal').style.display === 'block') {
      printPreisstaffel(percent);
    }
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:39:52