Показать сообщение отдельно
  #1 (permalink)  
Старый 09.02.2017, 07:29
Новичок на форуме
Отправить личное сообщение для solanos Посмотреть профиль Найти все сообщения от solanos
 
Регистрация: 09.02.2017
Сообщений: 7

Раздельное суммирование значений чекбоксов
Здравствуйте.

Есть такой код:

<form name="Sum">
  <input type="checkbox" value="1"/>
  <input type="checkbox" value="2"/>
  <input type="checkbox"/>
  <input type="checkbox" value=""/>
  <input type="checkbox" value="3"/>
  <input type="checkbox" value="4"/>
  <input type="checkbox" value="5"/>
  <output id="rezultat">Сумма: 0</output>
</form>


var s = document.forms.Sum,
    d = s.querySelectorAll('input[type="checkbox"]:not([value]), input[type="checkbox"][value=""]');
  for (var i = 0; i < d.length; i++) // чтобы не было написано NaN, убираем в disabled пункты, где не прописаны значения
    d[i].disabled = true;
s.onchange = function() { // начало работы функции сложения
  var n = s.querySelectorAll('[type="checkbox"]'),
      itog = 0;
  for(var j=0; j<n.length; j++)
    n[j].checked ? itog += parseFloat(n[j].value) : itog;
    document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}


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

<form name="Sum">
  <input type="checkbox" class="class1" value="1"/>
  <input type="checkbox" class="class1" value="2"/>
  <input type="checkbox" class="class1" value="3"/>
  <input type="checkbox" class="class1" value="4"/>
  <input type="checkbox" class="class1" value="5"/>
  
  <input type="checkbox" class="class2" value="6"/>
  <input type="checkbox" class="class2" value="7"/>
  <input type="checkbox" class="class2" value="8"/>
  <input type="checkbox" class="class2" value="9"/>
  <input type="checkbox" class="class2" value="10"/>
  <output id="rezultat1">Сумма: 0</output>
  <output id="rezultat2">Сумма: 0</output> 
</form>


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

Спасибо.

Последний раз редактировалось solanos, 09.02.2017 в 09:03.
Ответить с цитированием