jQuery中的价格模拟器-将值添加到两个变量中

Price simulator in jQuery - Adding values into two vars

本文关键字:变量 两个 添加 模拟器 jQuery      更新时间:2023-09-26

我在jQuery中有一个实时价格模拟器,需要检查是否有任何记录有"粘附价格",以添加最终值,但当我尝试使用下面的注释数据(var parent)时,它总是添加值,但如果复选框未选中,则不会删除。

这个想法是,如果ID不是空的,那么它的值就是粘合价格,它应该将其添加到粘合变量中。并且必须将"rel"值添加到"total"变量中。

问题是,我不得不使用"rel"而不是value,因为该值将被保存到mysql表中以供参考。我用"id"表示附着力值。

HTML复选框:

<input type="checkbox" rel="20" id="" name="opc[]" value="1">
<input type="checkbox" rel="10" id="" name="opc[]" value="2">
<input type="checkbox" rel="30" id="150" name="opc[]" value="3">

jQuery:

$(document).ready(function(){
        var total = 0;
        var adhesion = 0;
        function calcTotal(){
            $("input:checked").each(function(){
                var value = $(this).attr("rel");
                /*var parent      = $(this).id;
                if(parent.value != ""){
                    adhesion += parseFloat(parent);
                }*/
                total += parseFloat(value);
            });
        }
        $("input:checkbox").click(function(){
            if(adhesion != 0){
                total = adhesion;
            }else{
                total = 0;
            }
            calcTotal();
            $(".monthly_val").html("$ "+total.toFixed(2));
        });
    });

添加了带有更改的jsbin

我对您的代码做了一些尝试,当我做对了,这个函数应该按照您的意愿运行:

function calcTotal(){
    var total = 0;
    var adh = 0;
        $("input:checked").each(function(){
            var value  = $(this).data("price");
            var parent = $(this).data("adhesion");
            if(parent !== 0){
                adh += parseFloat(parent);
            }
            total += parseFloat(value);
        });
      return total+adh;
    }
    $("input:checkbox").click(function(){
        var endprice = calcTotal();
        $(".v_mensal").html("R$ "+endprice.toFixed(2));
    });

我给函数添加了一个返回值,并稍微切换了变量的范围。我希望这对你有帮助。

链接到更新的jsbin