Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.09.2019, 08:37
Новичок на форуме
Отправить личное сообщение для MrRobit Посмотреть профиль Найти все сообщения от MrRobit
 
Регистрация: 20.09.2019
Сообщений: 4

Пишу калькулятор для расчета цены установки, возник вопрос, как посчитать сумму всех
Пишу калькулятор для расчета цены установки, возник вопрос, как посчитать сумму всех выбранных параметров, у меня много выпадающих списков? Также интересует, как можно скрыть определенные данные в списке, при выборе количества цилиндров в первом Select чтобы во втором Select скрылись определенные параметры? Изначально пробовал вот такой функцией :

function GetData()
  {
     // получаем индекс выбранного элемента
     var selind = document.getElementById("SelectMyLove").options.selectedIndex;
     var val= document.getElementById("SelectMyLove").options[selind].value;

   alert( "Value= " + val);
  }


Но успехом это не закончилось, подскажите, пожалуйста, как можно посчитать

<div class="cf-left-col">
  <div class="form-group">
    <select class="input-md form-control">
      <option>Выберите количество цилиндров</option>
      <option value="1">4 цилиндра</option>
      <option value="2">6 цилиндров</option>
      <option value="3">8 цилиндров</option>
      <option value="4">ГАЗель</option>
    </select>

  </div>
  <div class="form-group">
    <select class="input-md form-control">
      <option>Выберите оборудование</option>
      <!--4 цилиндра-->
      <option value="13000">OMVL SAVER-4 (Италия) - Лидер продаж в РФ</option>
      <option value="11700">Digitronic – (Польша)</option>
      <option value="7000">Atiker (Турция) – бюджетный комплет оборудования</option>
      <option value="12400">BRC- (Италия), Оборудование премиум класса)</option>
      <!--6 цилиндра-->
      <option value="17500">OMVL -6 (Италия), Лидер продаж в РФ</option>
      <option value="20800">OMVL -6 OBD (Италия) , Премиум линейка</option>
      <option value="28400">BRC- (Италия), Оборудование премиум класса</option>
      <!--8 цилиндра-->
      <option value="23000">OMVL -8 OBD (Италия) - Премиум линейка</option>
      <option value="33600">BRC- (Италия), Оборудование премиум класса</option>
    </select>
  </div>
  <div class="form-group">
    <select class="input-md form-control">
      <option>Выберите объем баллона</option>
      <option value="11275.29">Баллон (Метан) 50 л (219*1640) мм</option>
      <option value="29055.90">Баллон (Метан) 100 л( 425*1000) мм</option>
      <option value="25876.38">Баллон (Метан) 90 л (425*940) мм</option>
      <option value="4240.00">Баллон цилиндрический 100 л (399*895)</option>
      <option value="4310.00">Баллон 100 л (400*912)</option>
      <option value="4240.00">Баллон 103 л (356*1110) </option>
      <option value="4100.00">Баллон 105 л (376*1064)</option>
      <option value="4360.00">Баллон 130 л (399*1144) </option>
      <option value="4590.00">Баллон 130 л (400*1165)</option>
      <option value="7550.00">Баллон цилиндрический 200 л (498*1136) </option>
      <option value="2070.00">Баллон цилиндрический 35 л (241*880)</option>
      <option value="2520.00">Баллон цилиндрический 50 л (299*798) </option>
      <option value="2460.00">Баллон цилиндрический 50 л (300*796)</option>
      <option value="3240.00">Баллон цилиндрический 51 л (356*600) </option>
      <option value="2770.00">Баллон цилиндрический 60 л (299*948) </option>
      <option value="3070.00">Баллон цилиндрический 60 л (315*863) </option>
      <option value="2630.00">Баллон цилиндрический 60 л (300*945)</option>
      <option value="3000.00">Баллон цилиндрический 60 л (315*866)</option>
      <option value="2840.00">Баллон цилиндрический 65 л (299*1023) </option>
      <option value="4150.00">Баллон цилиндрический 80 л (356*900) </option>
      <option value="3520.00">Баллон тор внешняя горловина 42 л НЗГА (600*200)</option>
      <option value="5900.00">Баллон тор внешняя горловина 50 л (650*200) </option>
      <option value="4100.00">Баллон тор внешняя горловина 54 л НЗГА (630*220)</option>
      <option value="4710.00">Баллон тор внешняя горловина 60 л (630*250)</option>
      <option value="7550.00">Баллон тор внешняя горловина 62 л (720*210) </option>
      <option value="7500.00">Баллон тор внешняя горловина 74 л (720*230) </option>
      <option value="7900.00">Баллон тор внешняя горловина 81 л (720*250) </option>
      <option value="8350.00">Баллон тор внешняя горловина 98 л НЗГА (720*300)</option>
      <option value="3540.00">Баллон тор внутр. горловина 42 л НЗГА (600*200)</option>
      <option value="3990.00">Баллон тор внутр. горловина 47 л (600*220) </option>
      <option value="3730.00">Баллон тор внутр. горловина 53 л (630*225) </option>
      <option value="6620.00">Баллон тор внутр. горловина 54 л НЗГА (720*180)</option>
      <option value="6210.00">Баллон тор внутр. горловина 55 л (650*225) </option>
      <option value="8100.00">Баллон тор полнотелый 85 л (720*250) </option>
      <option value="8300.00">Баллон тор полнотелый 93 л (720*270) </option>
      <option value="8300.00">Баллон тор полнотелый 94 л (720*270) </option>
    </select>
  </div>
</div>
<div class="cf-right-col">
  <div class="form-group">
    <select multiple class="form-control">
      <option value="300">ВЗУ</option>
      <option value="1000">Сенсор уровня газа</option>
      <option value="1500">Евромультиклапан</option>
      <option value="1500">Обтяжка карпетом</option>
      <option value="500">Доп фильтр тонкой очистки</option>

    </select>
  </div>
  <div class="form-tip pt-20">
    <i class="fa fa-info-circle"></i> Для множественного выбора зажмите клавишу CTRL
  </div>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2019, 09:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от MrRobit
Пишу калькулятор для расчета цены установки
...
подскажите, пожалуйста, как можно посчитать
Круто ты собрался писать калькулятор...

Сообщение от MrRobit
var selind = document.getElementById("SelectMyLove").options.selectedIndex;
var selind = document.getElementById("SelectMyLove").selectedIndex;

Сообщение от MrRobit
var val= document.getElementById("SelectMyLove").options[selind].value;
var val= document.getElementById("SelectMyLove").value;


Это если нет мультиселекта... Т.е. возможен только одиночный выбор в селекте.
Но в твоем случае у селелектов нет никакого ИД.
Есть только классы.
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2019, 13:59
Новичок на форуме
Отправить личное сообщение для MrRobit Посмотреть профиль Найти все сообщения от MrRobit
 
Регистрация: 20.09.2019
Сообщений: 4

ksa, Спасибо это я поправил, а как сделать чтобы он считал информацию от всех селектов?

Пошел другим способом, решил писать так

$('select').change(function(){
    var sum = 0;
    $('select :selected').each(function() {
        sum += Number($(this).val());
    });
     //$("#sum").html(sum);
        console.log(sum);
});


Но теперь в консоле он просто выдает NaN

Последний раз редактировалось MrRobit, 20.09.2019 в 14:07.
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2019, 14:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var s = $('select').change(function(){
    var sum = 0;
    s.each(function() {
        sum += Number(this.value) || 0;
    });
     //$("#sum").html(sum);
        console.log(sum);
});
Ответить с цитированием
  #5 (permalink)  
Старый 20.09.2019, 14:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от MrRobit
Пошел другим способом
Если не умеешь что-то делать - способ он кагбэ один. Нужно научиться работать с чем-то простым и легко понятным.

Сделай простой пример с одним селектом... Научись с ним работать.
Потом можно добавить еще селекты, но по одному за раз и научиться работать с ними...

А ты кидаешься делать сразу то, в чем совершенно не понимаешь.
Так ты долго будешь блуждать в темноте.

Так же нужно учиться тестировать то, что ты написал... Смотреть с чем ты имеешь дело...
Программа это правильная последовательность определенных команд и операций, а не случайный текст из английских слов...
Ответить с цитированием
  #6 (permalink)  
Старый 20.09.2019, 15:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от MrRobit
Но теперь в консоле он просто выдает NaN
Дык!
Цитата:
Если аргумент не может быть преобразован в число, возвращается NaN.
https://developer.mozilla.org/ru/doc...Objects/Number
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильно вызвать массив biryukovm Элементы интерфейса 3 19.03.2018 13:31
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56