Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2018, 09:02
Аватар для igor.morgunov
Новичок на форуме
Отправить личное сообщение для igor.morgunov Посмотреть профиль Найти все сообщения от igor.morgunov
 
Регистрация: 08.12.2018
Сообщений: 9

Условие для чекбоксов
Здравствуйте форумчане, не кидайте сильно палками, с jQuery не сильно знаком. Нужно сделать одну вещь. Имеется 6 чекбоксов, 3 из них помечены классом. Так вот нужно чтоб при выборе хотя бы одного - цена первого была 15000, а последующих 6000. Я пришел к тому чтоб подсчитывать кол-во чекбоксов из помеченных классом, но мой код не работает. Могли бы Вы его проверить/поправить? Надеюсь на понимание, спасибо!!! Может ошибка что нельзя переменные в массив? Или можно проще все сделать
<div class="header-content-page">
                    <div class="header-name7">РАСЧЕТ СТОИМОСТИ</div>
                            <div class="header-name7-black">ВЫБОР МОЩНОСТИ</div>
                            <div class="header-main-form">
                                 <div class="btn-group" data-toggle="buttons">
                                <label class="btn active" id="option-00">
                                    <input type="radio" name="options" id="option-0" value="0" checked>
                                    1 вкладка
                                </label>
                                <label class="btn" id="option-01">
                                    <input type="radio" name="options" id="option-1" value="1">
                                    2 вкладка
                                </label>
                                <label class="btn" id="option-02">
                                    <input type="radio" name="options" id="option-2" value="2">
                                    3 вкладка
                                </label>
                            </div>
                            <div class="check-group">
                                <label id="label-0" class="clearfix" for="check-0">
                                    <input id="check-0" type="checkbox" checked />1й
                                    <span class="float-right"></span>
                                </label>
                                <label id="label-1" class="clearfix" for="check-1">
                                    <input id="check-1" type="checkbox" class="discount" />2й
                                    <span class="float-right"></span>
                                </label>
                                <label id="label-2" class="clearfix" for="check-2">
                                    <input id="check-2" type="checkbox" class="discount" />3й
                                    <span class="float-right"></span>
                                </label>
                                <label id="label-3" class="clearfix" for="check-3">
                                    <input id="check-3" type="checkbox" class="discount" />4й
                                    <span class="float-right"></span>
                                </label>
                                <label id="label-4" class="clearfix" for="check-4">
                                    <input id="check-4" type="checkbox" />5й
                                    <span class="float-right"></span>
                                </label>
                                <label id="label-5" class="clearfix" for="check-5">
                                    <input id="check-5" type="checkbox" />6й
                                    <span class="float-right"></span>
                                </label>
                            </div>
                       </div>

$(document).ready(function () {
    $first = 0;
    $second = 0;
    $third = 0;
    if ($('.discount:checked').length == 1){
        first=15000; 
    	second=0;
    	third =0;
    }else if ($('.discount:checked').length == 2){
    	first=15000;
    	second = 6000;
    	third = 0;
    } else if($('.discount:checked').length== 3){
        first=15000;
    	second = 6000;
    	third = 6000;
    }
    console.log('first, second, third')

    var price = [
        [0, first, second, third, 0, 5000],
        [0, first, second, third, 0, 5000],
        [0, first, second, third, 0, 5000]
    ];
    function calculate() {
        var sum = 0;
        var i = $('.btn.active').find('input:radio[name="options"]').val();
        console.log(i);
        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 в 09:24. Причина: добавлен html
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2018, 09:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

igor.morgunov,
html добавьте.
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2018, 09:25
Аватар для igor.morgunov
Новичок на форуме
Отправить личное сообщение для igor.morgunov Посмотреть профиль Найти все сообщения от igor.morgunov
 
Регистрация: 08.12.2018
Сообщений: 9

добавил html
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2018, 09:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var dsc = $('.discount:checked').length,
    $first = dsc ? 1500 : 0,
    $second = dsc > 1 ? 6000 : 0,
    $third = dsc > 2 ? 6000 : 0;
Ответить с цитированием
  #5 (permalink)  
Старый 08.12.2018, 09:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от igor.morgunov
выборе хотя бы одного - цена первого была 15000, а последующих 6000
а если выбраны все три или любые 2 тогда что?
Ответить с цитированием
  #6 (permalink)  
Старый 08.12.2018, 09:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

laimas,
удивляюсь способности ванговать, сам ничего не понимаю, что требуется.
Ответить с цитированием
  #7 (permalink)  
Старый 08.12.2018, 09:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

рони,
всякое может быть Но вроде правильно - первый в любом случае, второй если два любых, третий если все.
Ответить с цитированием
  #8 (permalink)  
Старый 08.12.2018, 09:54
Аватар для igor.morgunov
Новичок на форуме
Отправить личное сообщение для igor.morgunov Посмотреть профиль Найти все сообщения от igor.morgunov
 
Регистрация: 08.12.2018
Сообщений: 9

При выборе одного в массив попадало 15000, второго 15000 + 6000, третьего 15000 + 6000 + 6000
Ответить с цитированием
  #9 (permalink)  
Старый 08.12.2018, 09:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от igor.morgunov
второго 15000 + 6000, третьего 15000 + 6000 + 6000
Затыка получается, ибо "второго" не равно двум, как и "третьего" не равно 3. Так как все таки должно быть?
Ответить с цитированием
  #10 (permalink)  
Старый 08.12.2018, 10:03
Аватар для igor.morgunov
Новичок на форуме
Отправить личное сообщение для igor.morgunov Посмотреть профиль Найти все сообщения от igor.morgunov
 
Регистрация: 08.12.2018
Сообщений: 9

прошу прощения, запутал. Если один любой - то 15000, если 2 любых, то 15000 + 6000 и три 15000 + 6000 + 6000
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SEOCRM - бесплатные инструменты для оптимизаторов, интернет-маркетологов и владельце SeoCRM Оффтопик 0 23.05.2016 11:59
Условие для текстареи rodiony4 jQuery 5 02.03.2016 23:02
Требуется программист на QML для создания интерфейса клиентской программы для общения m.simakov Работа 0 11.02.2016 18:07
jquery условие для click функции Sergey_dn jQuery 2 02.07.2014 23:56
Условие для построение нумерации ArtemGavrilenko Элементы интерфейса 3 11.06.2014 13:02