Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery汇总各种Bootsrap开关的值(包括乘以一些下拉选项)_Jquery_Bootstrap 4 - Fatal编程技术网

使用jquery汇总各种Bootsrap开关的值(包括乘以一些下拉选项)

使用jquery汇总各种Bootsrap开关的值(包括乘以一些下拉选项),jquery,bootstrap-4,Jquery,Bootstrap 4,下面是我试图创建的购物车的简化版本:我想将开关的值相加,包括乘以具有开关的开关上下拉选择器的值(例如,reampSwitch3/Amp模拟器匹配) 以下是HTML: <div class="custom-control custom-switch"> <input type="checkbox" class="custom-control-input reampingSwitch" id="reampSwitch1" value="20"> <label c

下面是我试图创建的购物车的简化版本:我想将开关的值相加,包括乘以具有开关的开关上下拉选择器的值(例如,reampSwitch3/Amp模拟器匹配)

以下是HTML:

<div class="custom-control custom-switch">
  <input type="checkbox" class="custom-control-input reampingSwitch" id="reampSwitch1" value="20">
  <label class="custom-control-label" for="reampSwitch1">Live Reamping Deposit</label>
</div>

        <div class="custom-control custom-switch">
  <input type="checkbox" class="custom-control-input reampingSwitch" id="reampSwitch2" value="30">
  <label class="custom-control-label" for="reampSwitch2">Another Service</label>
</div>

        <div class="custom-control custom-switch">
  <input type="checkbox" class="custom-control-input" id="reampSwitch3">
  <label class="custom-control-label" for="reampSwitch3" value="10" >Amp simulator matching</label>


            <select class="custom-select my-1 mr-sm-2" id="inlineFormCustomSelectPref">
    <option selected value="0">How Many Tracks?</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
    <option value="5">Five</option>
    <option value="6">Six</option>
    <option value="7">Seven</option>
    <option value="8">Eight</option>
    <option value="9">Nine</option>

  </select>
    </div>



        <div class="total" id="reampTotal">

      <div class="alert alert-info" role="alert" id="reampSubtotal">
   Reamping Total : £0
</div>
      </div>
您可以在此处看到实时版本:

你可以这样做。我注意到有人在选择另一数量的曲目后选择了不同数量的曲目,方法是添加一个数据属性
data selected
,以存储以前的选择,并将其从总数中减去,以防止不同的曲目选择被添加到总数中

$(“.reampingSwitch”)。单击(函数(){
让total=parseInt($(“#reampusubtotal”).text().replace(“Reamping total:(),”);
如果($(this).is(“:checked”)){
total+=parseInt($(this.attr(“value”));
}
如果(!$(this).is(“:checked”)){
total-=parseInt($(this.attr(“value”));
};
$(“#reampusubtotal”).html(“铰孔总数:£”+(总数));
});
$(“#inlineFormCustomSelectPref”).change(函数(){
if($(“#reampSwitch3”).prop(“选中”)==true){
让选定项=$(this.val();
让price=selected*$(“label[for='reampSwitch3']”)attr(“value”);
让total=parseInt($(“#reampusubtotal”).text().replace(“Reamping total:(),”);
if($(this.attr(“选择的数据”)){
让previous=$(this).attr(“选择的数据”);
让previousPrice=previous*$(“标签[for='reampSwitch3']”)attr(“值”);
总计-=以前的价格;
}
合计+=价格;
$(“#reampusubtotal”).html(“铰孔总数:£”+(总数));
$(this).attr(“数据选定”,选定);
}
});
$(“#reampSwitch3”)。单击(函数(){
if($(“#inlineFormCustomSelectPref”).val()>0&&$(this.prop(“checked”)==true){
让选定项=$(“#inlineFormCustomSelectPref”).val();
让price=selected*$(“label[for='reampSwitch3']”)attr(“value”);
让total=parseInt($(“#reampusubtotal”).text().replace(“Reamping total:(),”);
合计+=价格;
$(“#reampusubtotal”).html(“铰孔总数:£”+(总数));
} 
如果($(“#inlineFormCustomSelectPref”).val()>0&&$(this.prop(“checked”)==false),则为else{
让选定项=$(“#inlineFormCustomSelectPref”).val();
让price=selected*$(“label[for='reampSwitch3']”)attr(“value”);
让total=parseInt($(“#reampusubtotal”).text().replace(“Reamping total:(),”);
总额-=价格;
$(“#reampusubtotal”).html(“铰孔总数:£”+(总数));
}
});

活扩孔矿床
另一项服务
放大器模拟器匹配
有多少轨道?
一个
两个
三
四
五
六
七
八
九
总计:0英镑

您到底想乘以什么?例如,如果我同时选中两个复选框(50英镑)并在下拉框中选择两个,您是否期望100英镑?三个开关的值需要相加。前两个开关具有简单值,第三个开关具有由下拉选择的乘法确定的值。该下拉列表对其他开关的值没有影响。谢谢你的意见。但是,如果我运行代码段,先添加一个与Amp模拟器匹配的服务,然后再添加一个其他服务,那么显示的总数就会发生奇怪的事情。@bill\u face我解决了这个问题。问题是在.reampingSwitch click函数中将total设置为0。现在,总数从#reampusubtotal文本中读取。但现在,如果在前两个交换机上添加服务并将其删除,则不会subtracted@bill_face我也注意到了这一点,并在我的回答中进行了修正。“它现在应该能像预期的那样工作了。”比尔·法斯:忘了我最后的评论吧,还有一个问题我现在要处理。
   $(".reampingSwitch").click(function() {
    var total = 0;
    $(".reampingSwitch:checked").each(function() {
        total += parseInt($(this).val(), 10);
    });
         $("#reampSubtotal").html("Reamping Total : £" + (total));       


});