Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Условие для чекбоксов (https://javascript.ru/forum/jquery/76136-uslovie-dlya-chekboksov.html)

рони 08.12.2018 16:14

igor.morgunov,
$(function() {
        var discount = $(".discount");
        discount.change(function() {
        var len = discount.filter(":checked").length;
        var result = [15000, 6000, 6000].slice(0,len);
        result.push(0,0,0)
        result.length = 3;
        price.forEach(function(el) {
        [].splice.apply(el, [1,3].concat(result))
        })
        })
});

    var price = [
        [0, 0, 0, 0, 0, 5000],
        [0, 0, 0, 0, 0, 5000],
        [0, 0, 0, 0, 0, 5000]
    ];

   function calculate() {
        var sum = 0;
        var i = $('.btn.active').find('input:radio[name="options"]').val();
        console.log('i = ' + i);
        console.log('j = ' + j);
        for (var j = 0; j < 6; j++) {
            if ($('#check-'+String(j)).is(':checked')) {
                sum += price[i][j];
                $('.cxema-'+String(j)).show();
            } else {
                $('.cxema-'+String(j)).hide();
            }
        }

        sum = String(sum).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
        console.log('Общая сумма: '+sum);
        var result = sum + ' руб.';
        $('#result .montage').html(result);
        return sum;
    }

igor.morgunov 08.12.2018 16:25

а так порядок сбился. при отметке 3,4,5 идет набор суммы, а должен быть 2,3,4
и при снятии 3 пункта - отнимает 15000, а должно что если один из трех выбран то первый 15000 а последующие 6000
и 4,5 по нулям если 3й не выбран

рони 08.12.2018 17:22

Цитата:

Сообщение от igor.morgunov
а так порядок сбился. при отметке 3,4,5 идет набор суммы, а должен быть 2,3,4
и при снятии 3 пункта - отнимает 15000, а должно что если один из трех выбран то первый 15000 а последующие 6000
и 4,5 по нулям если 3й не выбран

Цитата:

Сообщение от igor.morgunov
прошу прощения, запутал. Если один любой - то 15000, если 2 любых, то 15000 + 6000 и три 15000 + 6000 + 6000

уберите мой код, напишите кучу if, так будет проще.
я пас, писал выше вашу логику не понимаю.


Часовой пояс GMT +3, время: 22:44.