Добрый день. Прошу уважаемых гуру помочь разобраться с задачей, понимание которой есть а знаний для реализации крепко не хватает.
Суть задачи: имеем ряд чекбоксов, при их активции значения должны суммироваться по следующей логике:
- при выборе одного чекбокса с наибольшим значением должно выводиться только максимальное значение это чекбокса, при нажатии на остальные значение не меняется, то есть выводится в результат максимальное из всех
При этом есть чекбоксы значения которых должны суммироваться с максимальным значением из выбранных чекбоксов они отмечены жирным.
Например - выбрали смену наименования(10000) и смену руководителя(10000) то сумма должна выйти в 10000 руб.
Выбрали Смена паспортных данных учредителя(5000) и Выход учредителя или распределение его доли в ООО(8000) сумма должна выйти в 8000 руб.
Исключение составляет только а)продажи доли и Исправление ошибки(10000), если выбирают их то сумма суммируется. например выбрали смену наименования и продажи доли, то сумма 20000 руб.
Выбрали Исправление ошибки(10000) и Продажа доли в ООО (смена учредителя)(10000) то результат 20000, при этом если выбирать любые другие чекбоксы к этой сумме должен прибавляться результат максимального значения массива то есть если выбрать еще и Выход учредителя или распределение его доли в ООО(8000) то сумма 28000 и если еще к ним выбрать Смена паспортных данных учредителя(5000) то сумма все равно 28000.
Начал делать но не понимаю как это связать воедино чтобы работало.
Буду крайне признателен всем кто поможет.
<---------html_______>
<div id="price">
<ul>
<li><input type="checkbox" name="regcalc" value="10000" />Смена наименования</li>
<li><input type="checkbox" name="regcalc" value="10000" />Смена юридического адреса</li>
<li><input type="checkbox" name="regcalc" value="10000" />Смена видов деятельности</li>
<li><input type="checkbox" name="regcalc" value="10000" />Увеличение уставного капитала или вход участника путем увеличения уставного капитала в ООО</li>
<li><input type="checkbox" name="regcalc" value="10000" />Другие изменения в устав</li>
<li><input type="checkbox" name="regcalc" value="10000" />Изменения в ЕГРЮЛ ООО, АО</li>
<li><input type="checkbox" name="regcalc" value="1000" />Смена юридического адреса</li>
<li><input type="checkbox" name="regcalc" value="5000" />Смена руководителя или его паспортных данных</li>
<li><input type="checkbox" name="regcalc" value="8000" />Выход учредителя или распределение его доли в ООО</li>
<li><input type="checkbox" name="regcalc" value="10000" />Продажа доли в ООО (смена учредителя)</li>
<li><input type="checkbox" name="regcalc" value="5000" />Смена паспортных данных учредителя</li>
<li><input type="checkbox" name="regcalc" value="5000" />Смена видов деятельности</li>
<li><input type="checkbox" name="regcalc" value="10000" />Исправление ошибки</li>
<li><input type="checkbox" name="regcalc" value="5000" />Внесение записи о реестродержателе АО</li>
</ul>
<div class="result" id="sum">0</div>
</div>
<---------html_______>
<------------------------------javascript------------------------->
Array.prototype.map.call(document.querySelectorAll ('checkbox'),function(element,index,arr){
element.addEventListener('change',function(){
var _value = this.value;
Array.prototype.map.call(arr,function(e,i,a){
a[i].value = _value;
})
},false)
})
Array.prototype.max = function(){
var max = parseInt(this[this.length-1]), el;
for(var i=this.length-2; i>=0; i--){
el = parseInt(this[i]);
if(el>max){
max = el;
}
}
return max;
};
<script language="JavaScript" type="text/javascript">
$(function(){
$("#price").click(function(){
var sum=0; // начальное значение можно указать любое
$('#price :checked').each(function(){
sum+=parseInt($(this).val());
});
$('#sum').text(sum);
});
});
</script>
<------------------------------javascript------------------------->