Javascript.RU

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

Подсчет суммы чисел при отметке чекбоксов
Всем привет! Сразу скажу, что JavaScript только начал изучать, так что заранее извиняюсь за возможно глупый вопрос.
Передо мной встала такая задача: хочу сделать список товаров с чекбоксами. У каждого товара в соответствующей ей переменной прописана цена. Нужно чтобы при отметке чекбокса с названием товара ниже этого списка появлялась строка типа "Сумма выбранных Вами товаров: ... руб."
По умолчанию на страницу выводится только список товаров. И как только пользователь выбрал какой-нибудь чекбокс, то ниже появляется строка с суммой товаров, о которой писалось выше.
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2010, 16:01
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Garik, у чекбоксов есть value вот и суммируйте при выборе чекбокса её.
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2010, 16:28
Интересующийся
Отправить личное сообщение для Garik Посмотреть профиль Найти все сообщения от Garik
 
Регистрация: 09.07.2010
Сообщений: 19

Сообщение от JsLoveR Посмотреть сообщение
Garik, у чекбоксов есть value вот и суммируйте при выборе чекбокса её.
Это все понятно, но можно хотя бы какой-нить кусок кода, чтобы представление иметь как это на яве делать.
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2010, 16:46
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

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 элемента
		}
	}
		 
}
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2010, 17:57
Интересующийся
Отправить личное сообщение для Garik Посмотреть профиль Найти все сообщения от Garik
 
Регистрация: 09.07.2010
Сообщений: 19

Спасибо! Буду пробовать.
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2010, 18:26
Интересующийся
Отправить личное сообщение для Garik Посмотреть профиль Найти все сообщения от Garik
 
Регистрация: 09.07.2010
Сообщений: 19

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

Последний раз редактировалось Garik, 09.07.2010 в 18:31.
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2010, 20:32
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Garik,
вот-так, document.getElementById("result").innerHTML=res+' руб.';
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2010, 22:38
Интересующийся
Отправить личное сообщение для Garik Посмотреть профиль Найти все сообщения от Garik
 
Регистрация: 09.07.2010
Сообщений: 19

JsLoveR
Спасибо за ответы!
Ответить с цитированием
  #9 (permalink)  
Старый 30.01.2011, 19:02
Аватар для klubnichkaaa
Интересующийся
Отправить личное сообщение для klubnichkaaa Посмотреть профиль Найти все сообщения от klubnichkaaa
 
Регистрация: 30.01.2011
Сообщений: 28

давняя тема но надеюсь что ответят. Я реализовал подобный скрипт, но в нём есть подвох который вы увидите при дальнейшем расширении, а именно 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">
Вот из за этого скрипт перестаёт работать тоесть он видит ещё поля и что делать с ними не поймёт как решить эту проблему!
Ответить с цитированием
  #10 (permalink)  
Старый 27.07.2013, 21:00
Новичок на форуме
Отправить личное сообщение для kopie Посмотреть профиль Найти все сообщения от kopie
 
Регистрация: 27.07.2013
Сообщений: 3

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



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

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