【问题标题】:start a function if another function is active and activate some checkboxes only - JQuery如果另一个功能处于活动状态,则启动一个功能并仅激活一些复选框 - JQuery
【发布时间】:2023-04-04 13:13:01
【问题描述】:

我有一个功能,只有在之前激活了另一个功能时才想启动它。

我有一些复选框,我需要将其值相加得到总数。

仅当用户选择了某些复选框时,它必须激活另一个带有折扣的复选框。 我希望在第一次选择后激活折扣复选框,因为如果我不这样做,我可能会得到负价格。

然后(如果可能的话)我希望折扣复选框被停用是用户取消选择所有以前的复选框。

这可能吗?

这是我的脚本。我是 JavaScript/jQuery 的超级新手,所以这可能是一个愚蠢的问题。

谢谢

$(document).on('change', getCheck);
  
  function getCheck() {
    var total= 0;
    $('[type="checkbox"]:checked').not("#discount").each(function(i, el) {
    //console.log($(this).not("#off").val());
    var SumVehicle = parseFloat($(el).val());
    total += SumVehicle;
    //console.log(total);
    //console.log(price_tot);
    $('#rata').text(total  +" €");

     var finalprice = total;
     //var Check = getCheck();
         
        if(typeof(total) != "undefined" && total !== 0) {
          $('[type="checkbox"]:checked').not(".sum").each(function(i, el) {
          var Discount = parseFloat($(this).val());
          finalprice = finalprice - Discount;
          console.log(finalprice);
          $('#rata').text(finalprice  +" €");
          });
        };
      });
    };
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="sum" type="checkbox" name="vehicle1" value="1000"> I have a bike<br>
<input class="sum" type="checkbox" name="vehicle2" value="2000"> I have a car<br>
<br><br><br>
<input id="discount" type="checkbox" name="discount" value="200"> Discount<br>

<div id="rata">rata</div>

【问题讨论】:

  • 你的js代码有错误。请编辑并修复它
  • 在 javascript 中非常重要的一件事是检查开发者控制台的错误和调试。例如,您发布的脚本的控制台出现错误。在浏览器上按F12 访问此控制台日志
  • 设置discount复选框的disabled属性取决于它是否应该被激活。
  • 谢谢大家,我可能已经解决了!

标签: javascript jquery html checkbox


【解决方案1】:

用此代码替换您的 js 代码。错误将得到解决。

$( document ).ready(function() {
  $("input[type='checkbox']").on('change', getCheck);

  });
  function getCheck() {
    var total= 0;
    $('[type="checkbox"]:checked').not("#discount").each(function(i, el) {
    console.log($(this).not("#off").val());
    var SumVehicle = parseFloat($(el).val());
    total += SumVehicle;
    console.log(total);
    //console.log(price_tot);
    $('#rata').html(total  +" €");

     var finalprice = total;
     var Check = function getCheck(){

        if(typeof(Check) != "undefined" && Check !== null) {
          $("#discount").toggle(); 
          var Discount = parseFloat($(this).val());
          finalprice -= Discount;
          console.log(finalprice);
          $('#rata').text(finalprice  +" €");

        };
      };
    });
  };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 2013-10-12
    • 2020-12-15
    • 1970-01-01
    相关资源
    最近更新 更多