Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Подсчет суммы чисел при отметке чекбоксов (https://javascript.ru/forum/dom-window/10561-podschet-summy-chisel-pri-otmetke-chekboksov.html)

Garik 09.07.2010 14:53

Подсчет суммы чисел при отметке чекбоксов
 
Всем привет! Сразу скажу, что JavaScript только начал изучать, так что заранее извиняюсь за возможно глупый вопрос.
Передо мной встала такая задача: хочу сделать список товаров с чекбоксами. У каждого товара в соответствующей ей переменной прописана цена. Нужно чтобы при отметке чекбокса с названием товара ниже этого списка появлялась строка типа "Сумма выбранных Вами товаров: ... руб."
По умолчанию на страницу выводится только список товаров. И как только пользователь выбрал какой-нибудь чекбокс, то ниже появляется строка с суммой товаров, о которой писалось выше.
Заранее спасибо!

JsLoveR 09.07.2010 16:01

Garik, у чекбоксов есть value вот и суммируйте при выборе чекбокса её.

Garik 09.07.2010 16:28

Цитата:

Сообщение от JsLoveR (Сообщение 62967)
Garik, у чекбоксов есть value вот и суммируйте при выборе чекбокса её.

Это все понятно, но можно хотя бы какой-нить кусок кода, чтобы представление иметь как это на яве делать.

JsLoveR 09.07.2010 16:46

function calculate()
{
	var res=0;
	var All=document.forms['your_form_name'];//имя главной формы
	for(var i = 0; i < All.elements.length; ++i)
	{
		
		if(All.elements[i].checked)
		{
			res = res + parseInt(All.elements[i].value)  ;
			document.getElementById("your_id").innerHTML=res+' руб.';//id элемента
		}
	}
		 
}

Garik 09.07.2010 17:57

Спасибо! Буду пробовать.

Garik 09.07.2010 18:26

А подскажите еще пожалуйста как мне вывести результат работы скрипта на страницу?
Т.е. допустим у меня в скрипте посчиталась сумма товаров и мне надо ее вывести в блоке <div id='result'></div>

JsLoveR 09.07.2010 20:32

Garik,
вот-так, document.getElementById("result").innerHTML=res+' руб.';

Garik 09.07.2010 22:38

JsLoveR
Спасибо за ответы!

klubnichkaaa 30.01.2011 19:02

давняя тема но надеюсь что ответят. Я реализовал подобный скрипт, но в нём есть подвох который вы увидите при дальнейшем расширении, а именно id он по нему считает так вот если добавить какое либо другое поле то скрипт перестаёт считать. Из за этого я не могу дописать свой компонент на joomla у меня есть скрипт подсчёта

Цитата:

<script type="text/javascript">
function price(form){
var total = 0;
for (var i = 1; i< form.elements.length; i++){
if (document.getElementById(i).checked) {
var b=parseFloat(document.getElementById(i).value);
}
else {
b=0;
}
total+=b;
}
document.getElementById("total_price").innerHTML=t otal;
document.getElementById("total_prie").value=total;
document.getElementById("total_pr").value=total;
}
</script>
Он полностью рабочий, но у меня есть форма отправки письма

Цитата:

<p class="mail-zakaz"><?php echo JText::_( 'MAIL ZAKAZ' ); ?><p>
Имя:<br />
<input type="text" name="name" size="40" ><br />
E-mail:<br />
<input type="text" name="pojta" size="40" ><br />
Тел:<br />
<input type="text" name="tel" size="40" ><br />
Сообщение:<br />
<textarea name="mess" rows="10" cols="40" ></textarea>
<br />
<input id="total_prie" type='hidden' name="hi" value="">
<input type="submit" value="Отправить" name="submit">
Вот из за этого скрипт перестаёт работать тоесть он видит ещё поля и что делать с ними не поймёт как решить эту проблему!

kopie 27.07.2013 21:00

Добрый день, уважаемые форумчане. Несколько хочу продолжить данную тему, поскольку сам столкнулся с данным вопросом.
У меня также есть чекбоксы, также их клиент должен отмечать, также результат динамически выводится на странице. Мой пример на http://jsfiddle.net/k5JbD/.
Вопрос в том, как сделать так, чтобы выводилась не просто итоговая сумма, а определенный текст, который как раз зависит от итоговой суммы.
Например, имеем итоговую сумму 2 - выводится "Средний", имеем 0,5-1,5 - "Малый", 2-4 - "Большой".
Вообщем задача такая, что клиент должен получить название комплекта услуг, который он формирует самостоятельно, отмечая чекбоксы.


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