Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт калькулятора, не работает. (https://javascript.ru/forum/misc/7572-skript-kalkulyatora-ne-rabotaet.html)

mypaku 08.02.2010 23:10

ну у меня это было реализовано с помощью радио.
просто скрипт почему то не фурычил который я писал первым.
С радио проще, но как я понимаю тспользую данную систему это не реально. я когда пытался разобраться с инпутом так и не понял ризницы между неймом и ид. думал что на id завязан выбор.

Всего пунктов у меня гдето 50
из них 3 полотна которые были радио
и 5 вариантов внутренней отделки.

Вообще я хотел чтоб еще много что дисаблелось, есть не совместимые фирмы, но это так, мечта в идеале.

Думал что яваскрипт более понятен, и смогу разобраться беря за основу готовые.

JsLoveR 08.02.2010 23:28

mypaku,
Ну вот один выбор полотен (без дисейблов, например если человек выбирает полотно, все остальные полотна дисейблятся, а если он хочет изменить своё решение, то ему надо будет сбивать все выборы и заново их выбирать )
Код яваскрипта без изменений, а вот html изменён:
function Calc()
{

var pens=0;
 var All=document.forms['calceR'];

for(var i = 0; i < All.elements.length; ++i) {

	if(All.elements[i].checked){
	pens = pens + parseInt(All.elements[i].value)  ;
	 document.calceR.res.value=pens+' руб.';
    }
	}
	 
}

<form name="calceR">
	<table  border="1" cellspacing="0" cellpadding="4" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; ">
	<tr>
	<td colspan="4" align="center"><b>Дверные ручки:</b></td>
	</tr>
	<tr>
	<td>Ручки по цене 700 руб.</td>
	<td><input name="pen"  type="checkbox" value="700"></td>
	</tr>
	 <tr>
	<td>Ручки по цене 1400 руб.</td>
	<td><input name="pen1"  type="checkbox"  value="1400"></td>
	</tr>
	<tr>
	<td colspan="4" align="center"><b>Выберите одно из полотен:</b></td>
	</tr>
	<tr>
	<td>Полотно 800 руб.</td><td><input  type="radio"  name="q1" value="800"></td>
	</tr>
	<tr>
	<td>Полотно 1000 руб.</td><td><input  type="radio"  name="q1" value="1000"></td>
	</tr
	<tr>
	<td>Полотно 1200 руб.</td><td><input  type="radio"  name="q1" value="1200"></td>
	</tr
	<tr>
	<td align="center" colspan="4"><b>Полотна с внутренней отделкой:</b></td>
	</tr>
	<tr>
	<td>Полотно 1400 руб.(внут. отделка)</td><td><input  type="radio"  name="q2" value="1400"></td>
	</tr>
	<tr>
	<td>Полотно 1600 руб.(внут. отделка)</td><td><input  type="radio"  name="q2" value="1600"></td>
	</tr
	<tr>
	<td>Полотно 1800 руб.(внут. отделка)</td><td><input  type="radio"  name="q2" value="1800"></td>
	</tr
	<tr>
	<td>Полотно 2000 руб.(внут. отделка)</td><td><input  type="radio"  name="q2" value="2000"></td>
	</tr
	<tr>
	<td>Полотно 2200 руб.(внут. отделка)</td><td><input  type="radio"  name="q2" value="2200"></td>
	</tr
	<tr>
	<td>Выполнить рассчёт:</td><td><input  onclick="Calc()" type="button"  value="расчитать"></td>
	</tr>
	<td>Итого:</td><td><input name="res"  type="text" size="8" disabled="disabled" value="0"></td>
	<tr>
	<td>Стереть:</td><td><input  type="reset"  value="Удалить всё"></td>
	</tr>
		</table>
	</form>

mypaku 09.02.2010 00:06

Так, хм... т.е это универсальный скрипт был? не важно было чтоб я называл pen, pen1, можно использовать было любое название?

я просто везде добавил в валуе цену, а названия у меня абсолютно разные и все работает.

JsLoveR 09.02.2010 00:18

если вам надо выбрать чекбоксы, то имена обязаны быть разными(неважно pen или pen1, главное, чтобы вам было понятно), а если радио , то одинаковыми, например выбор одного из 3-х полотен, для 3 трёх радио три одинаковых имени "q1", если бы они были разными(имена), то 1 выбор из 3-х было бы невозможно выполнить, выбрались бы все три радио. Вот в чём дело. А для чекбоксов на разный товар - разное имя

mypaku 09.02.2010 00:24

Спасибо за разъяснение.
так как я не понимаю самого скрипта, то и не особо понимал что там происходит.
я думал что там прописано что название должно быть pen с любой цифрой.

Оказывается любое! это очень здорово! скрипт можно использовать как угодно и где угодно!

Еще раз огромное спасибо, Вы мне очень помогли!

JsLoveR 09.02.2010 00:30

mypaku,
Понимаете, в чём дело, что в этом скрипте можно вообще имена не использовать для чекбоксов, скрипт проверяет не имя , а выбран элемент или нет, если элемент выбран - суммировать его value, а для радио имя обязательно, ибо я обяъснял выше почему)

mypaku 09.02.2010 20:02

Ах вот оно что!
Яваскрипт интересная вещь, жаль что я в свое время когда увлекался компьютером не пошел по этому пути, ну да ладно!
Еще раз спасибо, отличный скрипт!

JsLoveR 09.02.2010 23:15

mypaku,
:victory:


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