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

时间:2014-11-10 13:42:15

标签: javascript jquery checkbox simulator

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

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

问题是我必须使用'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更改。

1 个答案:

答案 0 :(得分:1)

我用你的代码玩了一下,当我说对了,这个功能应该按照你的意愿行事:

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

相关问题