запустить функцию, если активна другая функция, и активировать только некоторые флажки - JQuery - PullRequest
1 голос
/ 02 мая 2019

У меня есть функция, которую я хочу запустить, только если ранее была активирована другая функция.

У меня есть несколько флажков, и мне нужно суммировать их значения, чтобы получить сумму.

Только Когда пользователь выбрал некоторые флажки, он должен активировать другой флажок со скидкой. Я хочу, чтобы флажок скидки был активирован после первого выбора, потому что, если я этого не сделаю, у меня может быть отрицательная цена.

Затем (если это возможно) я хочу, чтобы флажок скидки был деактивирован, если пользователь отменил выбор всех предыдущих флажков.

Возможно ли это?

Вот мой сценарий. Я супер новый в 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>

1 Ответ

0 голосов
/ 02 мая 2019

Замените свой код 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  +" €");

        };
      };
    });
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...