Javascript.RU

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

Калькулятор со значениями зависимыми от значении в checked
Калькулятор подобный этому http://spb.rt.ru/hometv/tariff
При выборе checked зависит цена как в примере Пакеты каналов

var k=0;
 if (cinema.checked == true)
 {k=k+1;
 }
  if (sport.checked == true)
 {k=k+1;
 }
 
  if (child.checked == true)
 {k=k+1;
 }
 
 if (cinema.checked == false)
 {k=k-1;
 }
  if (sport.checked == false)
 {k=k-1;
 }
 
  if (child.checked == false)
 {k=k-1;
 }
 if (k==1)
 {
 }

Не знаю как реализовать проверку, что нажато и этому значению присваивать цену 200, а другим 159
А потом в конце все это суммировать
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2014, 23:19
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

<div id="basket">

<div>
<span>цена</span>
<input type="checked" data-check="basket">
</div>
<div>
<span>цена</span>
<input type="checked" data-check="basket">
</div>

<div>
<span>цена</span>
<input type="checked" data-check="basket">
</div>

</div>

(function () {


var basket = document.getElementById('basket');
var price  = 0;

basket.addEventListener('click', fn, false)

function fn (e) { 
var e = e.target || e.srcElement;

if(e.getAttribute('data-check') != 'basket') return;

var price_ = +e.parentNode.children[0].innerHTML;

if(e.checked == true) price += price_;

else if (e.checked == false) price -= price_;

document.getElementById('елемент где будем выводить цену').innerHTML = price;

}

}());

Последний раз редактировалось caetus, 02.11.2014 в 23:24.
Ответить с цитированием
  #3 (permalink)  
Старый 03.11.2014, 05:47
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А что правда у checkbox в хтмле есть среднее положение?
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2014, 06:00
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Насчет этих чеков долбаных. Где у него параметр?

cinema.checked == true

это не параметр, это - индикатор. Вкл/выкл - вот и все. Значение, семантика этого вкл/выкл известна модели, по имени индикатора, следовательно модель может сразу задать эту семантику индикатора значением или выражением.

<input type="checkbox" value="+1.25" name="plus_odin_25"/>

Теперь у индикатора появился смысл. Если он горит используем его Value, иначе пропускаем. Что еще можно сделать? Сделать так чтобы параметр менялся в зависимости от состояния индикатора.

<input type="checkbox" value="+1.25" name="plus_odin_25" onchange="{this.checked?this.value=1.25:this.value =1}"/>

Ну вот, калькулятор просто собирает данные с полей и суммирует. Чтоб вычесть надо записать -1.25, чтобы поделить на 2 надо записать 0.5, или пусть считает сам - 1/2, чтобы извлечь корень надо возвести в дробную степень pow(0.5) - прямо в валуе все пишите.

Кроме того - нормализация. Загоняете параметр в диапазон от 0 до 1, а на выходе приводите к реальной единице измерения.

Последний раз редактировалось kostyanet, 03.11.2014 в 06:03.
Ответить с цитированием
Ответ



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

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