Javascript.RU

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

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

Вот собственно код:

<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;
}
Ответить с цитированием
  #2 (permalink)  
Старый 25.07.2015, 10:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

Ramzes94,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
 <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>
<script>
var s = document.forms.Sum;
s.onchange = function() { // начало работы функции сложения
  var n = s.querySelectorAll(':checked'),
      itog = 0;
  for(var j=0; j<n.length; j++)
    itog += +n[j].value||0;
    document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}
</script>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 25.07.2015, 11:19
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

Рони привет дружище)))
Подскажи пожалуйста можно сделать так чтобы javascript автоматом определял что: если выбран один чебокс, любой не важно какой, то сумма не увеличатся.
При выборе двух чебоксов считается сумма которая указанна в втором чебоксек.

Последний раз редактировалось Ramzes94, 25.07.2015 в 11:21.
Ответить с цитированием
  #4 (permalink)  
Старый 25.07.2015, 14:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

Сообщение от Ramzes94
При выборе двух чебоксов считается сумма которая указанна в втором чебоксек.
запоминать первый выбранный checkbox и не учитывать его при суммировании
Ответить с цитированием
  #5 (permalink)  
Старый 25.07.2015, 14:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

Ramzes94,
задача про the horse in vacuum ?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
 <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>
<script>
var s = document.forms.Sum, temp;
s.onchange = function() { // начало работы функции сложения
  var n = s.querySelectorAll(':checked'),
      itog = 0;
     if(n.length == 1) {temp = n[0]};
     if(!n.length) {temp = null};
  for(var j=0; j<n.length; j++)
    if(n[j] != temp) itog += +n[j].value||0;
    document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}
</script>
</body>

</html>
Ответить с цитированием
  #6 (permalink)  
Старый 26.07.2015, 17:40
Аватар для Ramzes94
Аспирант
Отправить личное сообщение для Ramzes94 Посмотреть профиль Найти все сообщения от Ramzes94
 
Регистрация: 09.06.2015
Сообщений: 62

Отлично от души
Спасибо дружище то что надо)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавающий блок, не работает часть кода в joomla 3 Kuzma jQuery 1 06.05.2015 09:28
jQuery, не работает часть кода в joomla 3 Kuzma Элементы интерфейса 1 06.05.2015 09:27
Вставка HTML кода и JS кода через innerHTML zhurchik AJAX и COMET 1 31.10.2014 17:32
скрыть из исходного кода часть javascript кода. javasc Javascript под браузер 10 12.03.2014 09:32
Пример кода сохранения в базу html страницы генерированного посредством JavaScripts wayzer Серверные языки и технологии 2 06.09.2012 16:46