首页 > 解决方案 > 复选框值的乘法不起作用(jQuery/JS)

问题描述

我有分配给复选框的值,这些值在只读文本框中(运行 CPC 总计)中计数,这很有效。

然后,我有一个文本框供用户输入点击次数,并且 JS 函数将 Running CPC Total 值乘以该点击次数值得到总成本,该总成本显示在另一个只读文本框(总成本)中。这也有效。

我的问题是当我到达代理折扣复选框时。应该发生的是,如果选中 10% 复选框(例如),上述两个只读文本框的值都将乘以 0.9(以实现 10% 的折扣)。我的 JS 函数适用于 Running CPC Total,但我不确定 Total Cost 文本框发生了什么,因为它似乎没有打折。

任何人都可以帮助我了解发生了什么吗?我想我需要一个新的视角来看待这个问题,过去几个晚上我一直在为此绞尽脑汁。

JS 小提琴链接:https ://jsfiddle.net/ud153qot/#&togetherjs=cjayM362sc

主要的 JS 函数从 JS fiddle 的第 174 行开始,但也会包含在下面:

//code to update CPC Total when agency discount is applied
jQuery(function($) {
  $('input[name="percentdiscount"]').on('change', function() {
    applyDiscount();
  });

  $('input[type=checkbox]').click(function() {
    let sum = 0;        
    $('input[type=checkbox]:checked').each(function() {
      sum += parseFloat($(this).val());
    });
    $('#sum').val(sum.toFixed(2)).data('total', sum);
    applyDiscount();
  });

  function applyDiscount() {
    var pc = parseFloat($('input[name="percentdiscount"]:checked').val());
    var noc = parseFloat($('input[id="numberofclickstextbox"]').val());
    $('#sum').val(function() {
      return ($(this).data('total') * pc).toFixed(2);
    });
    var CPCsum = parseFloat($('#sum').val());
    $('#totalcost').val(function() {
      return (noc * CPCsum * pc).toFixed(2);
    });
  }
});   

标签: javascriptjqueryhtml

解决方案


推荐阅读