Добрый вечер всем
есть калькулятор js + php
function changeText(){
var resultOne = 0;
var four = document.getElementById('four').options[document.getElementById('four').selectedIndex].dataset.val;
var one = document.getElementById('one').options[document.getElementById('one').selectedIndex].dataset.val;
var two = document.getElementById('two').options[document.getElementById('two').selectedIndex].dataset.val;
var three = document.getElementById('three').options[document.getElementById('three').selectedIndex].dataset.val;
var models = document.getElementsByName('models');
if (document.getElementById('seam1').checked)
var flag = document.getElementById('seam1').dataset.val;
if (document.getElementById('seam2').checked)
var flag = document.getElementById('seam2').dataset.val;
if (document.getElementById('seam3').checked)
var flag = document.getElementById('seam3').dataset.val;
if (document.getElementById('rhombus').checked)
var flag = document.getElementById('rhombus').dataset.val; // 1.1 вместо var flag = пишем var rhombus, чтобы наблюдать действия в коменте 1.2
resultOne = parseFloat(document.getElementById('models').dataset.val);
resultOne += parseFloat(one);
resultOne += parseFloat(two);
resultOne += parseFloat(three);
resultOne += parseFloat(flag);
resultOne += parseFloat(four);
// resultOne += parseFloat(rhombus);
// 1.2 с этой строкой сумма меняется только при активном checkbox
// если checkbox неактивен вместо суммы появляется значение NaN
document.getElementById('resultTwo').innerHTML = resultOne;
document.getElementById("price").value = resultOne;
}
<label class="control-label">Logo <? echo $currbrand; ?></label>
<select name="Logo" id="four" class="form-control" onchange="changeText()">
<option data-val='0'>no item</option>
<?
foreach($cfg_calc_fancywork["fancywork"] as $work => $price)
{
echo "<option data-val='".$price."'>".$work."</option>";
}
?>
</select>
<label class="control-label">items</label>
<div class="checkbox-list">
<label>
<input type="radio" id="seam1" data-val="0" value="set item one" checked="checked" name="seam" onclick="changeText()"/> Item one
</label>
<label>
<input type="radio" id="seam2" data-val="<? echo $cfg_calc_line_double; ?>" value="set item" name="seam" onclick="changeText()"/> Item two
</label>
<label>
<input type="radio" id="seam3" data-val="<? echo $cfg_calc_line_rs; ?>" value="set item" name="seam" onclick="changeText()"/> Item three
</label>
<label>
<input type="radio" id="rhombus" data-val="<? echo $cfg_calc_line_rhombus; ?>" value="set item" name="seam" onclick="changeText()"/> Item rhombus
</label>
</div>
<h2 class="pull-right">Стоимость <b><span id="resultTwo"><? echo $cfg_curs["$info"]["$too_info"]; ?></span> руб.</b></h2>
<input name="Сумма заказа " id="price" type="hidden" value="<? echo $cfg_curs["$info"]["$too_info"]; ?>">
Значения цен заданны в конфиг файле.
Поблема в том, что элемент rhoumb коректно работает если у него type radio.
Но, нужен checkbox, вот с ним то и возникают проблемы.
Либо значение суммы не меняется, либо меняется только при активном чекбоксе посредством выбора остальных инпутов.
Если чекбокс не активен, в процессе выбора появляется значение NaN.
Грешу на эти строки в коде
Код:
|
(document.getElementById('rhombus').checked) |
,
ибо по логике вещей получается два чекнутых инпута.
Но, с друго стороны...у них ведь разный тип одни radio, другой checkbox
Не могу понять в чем дело, прошу Вас помочь.