Калькулятор со значениями зависимыми от значении в 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 А потом в конце все это суммировать |
<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; } }()); |
А что правда у checkbox в хтмле есть среднее положение?
|
Насчет этих чеков долбаных. Где у него параметр?
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, а на выходе приводите к реальной единице измерения. |
Часовой пояс GMT +3, время: 02:08. |