сброс подсчитанных значений в калькуляторе
Может кто нибудь помочь? Я в js совсем не бум бум... Нужно чтобы на кнопку "сброс" вбрасывались все значения и можно было вибирать снова
// Подсчет выбранных value | чекбокс:
var count = 0;
$(function() {
count = $('input[type=checkbox]:checked').length;
displayCount();
$('input[type=checkbox]').bind('click' , function(e, a) {
if (this.checked) {
count += a ? -1 : 1;
} else {
count += a ? 1 : -1;
}
displayCount();
});
$('#invert').click(function(e) {
$('input[type=checkbox]').trigger('click', true)
});
});
function displayCount() {
$('#count').text(count);
}
// Калькулятор чекбоксов:
var total = 0;
function calcItems(item) {
var $leftBlock = $('.left');
var val = $(item).val();
var name = $(item).parent('label').text();
var index = $(item).attr('data-index');
if (item.checked) {
total += parseInt(val);
$leftBlock.append('<span data-index=' + index + '>' + name + '</span>');
} else {
total -= parseInt(val);
$leftBlock.find('[data-index="' + index + '"]').remove();
}
$('#result b').text(total);
}
// Сброс чекбоксов:
$('button').click(function() {
$('input:checked').prop('checked', false);
});
$('#btn').on('click', function() {
$('.clear').text("0");
$('.calc').text("00");
$('.clear-txt').text("");
$('input[type=checkbox]')
.prop("checked", false);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="text text-center pb-5">
<span class="right subheading">выбрано:</span>
<span class="countin clear" id="count"></span>
<span class="subheading">позиций</span>
<h2>ИТОГО: <span class="calc" id="result"><b>00</b></span></h2>
<div class="price"></div>
<button class="btn btn-primary" id="btn">СБРОСИТЬ</button>
<button class="btn btn-primary modal_btn">ЗАКАЗАТЬ</button>
</div>
<div id="block">
<div class="left clear-txt"> </div>
</div>
<ul class="accords-menu">
<li>
<div class="dropdownlink"> ДИАГНОСТИКА</div>
<ul class="submenuItems">
<table>
<thead>
<tr>
<th>УСЛУГА</th>
<th>BYN</th>
<th>ВЫБРАТЬ</th>
</tr>
</thead>
<tbody>
<tr>
<td><span>Компьютерная диагностика</span></td>
<td>20</td>
<td><label><input type="checkbox" data-index="1" name="channelcost" value="20" onclick="calcItems(this);" /><span class="display">Компьютерная диагностика</span></label></td>
</tr>
<tr>
<td>Чтение и удаление кодов неисправностей</td>
<td>20</td>
<td><label><input type="checkbox" data-index="2" name="channelcost" onclick="calcItems(this);" value="20" /><span class="display">Чтение и удаление кодов неисправностей</span></label></td>
</tr>
</tbody>
</table>
</ul>
</li>
</li>
</ul>
Ниже код, который предложил "OPTIMUS-PRIME" он работает и всё стирает, но после того как всё стерлось основной подсчет не происходит совсем а подсчет кол-ва выбранных чекбоксов продолжает считать от последнего выбранного до сброса ...
$('#btn').on('click', function() {
$('.clear').text("0");
$('.calc').text("00");
$('.clear-txt').text("");
$('input[type=checkbox]')
.prop("checked", false); });
Все подсчитаные значения нужно сбрасывать по клику на кнопку, как это сделать?
Ответы (1 шт):
Автор решения: IvaMuxa
→ Ссылка
// Подсчет выбранных value | чекбокс:
var count = 0;
var $leftBlock = $('.left');
$(function() {
count = $('input[type=checkbox]:checked').length;
displayCount();
$('input[type=checkbox]').bind('click', function(e, a) {
if (this.checked) {
count += a ? -1 : 1;
} else {
count += a ? 1 : -1;
}
displayCount();
});
$('#invert').click(function(e) {
$('input[type=checkbox]').trigger('click', true)
});
});
function displayCount() {
$('#count').text(count);
}
// Калькулятор чекбоксов:
var total = 0;
function calcItems(item) {
var val = $(item).val();
var name = $(item).parent('label').text();
var index = $(item).attr('data-index');
if (item.checked) {
total += parseInt(val);
$leftBlock.append('<span data-index=' + index + '>' + name + '</span>');
} else {
total -= parseInt(val);
$leftBlock.find('[data-index="' + index + '"]').remove();
}
$('#result b').text(total);
}
$('#btn').on('click', function() {
$('input[type=checkbox]').prop("checked", false);
$leftBlock.innerText = "";
total = 0;
count = 0;
displayCount();
$('#result b').text(total);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="text text-center pb-5">
<span class="right subheading">выбрано:</span>
<span class="countin clear" id="count"></span>
<span class="subheading">позиций</span>
<h2>ИТОГО: <span class="calc" id="result"><b>00</b></span></h2>
<div class="price"></div>
<button class="btn btn-primary" id="btn">СБРОСИТЬ</button>
<button class="btn btn-primary modal_btn">ЗАКАЗАТЬ</button>
</div>
<div id="block">
<div class="left clear-txt"> </div>
</div>
<ul class="accords-menu">
<li>
<div class="dropdownlink"> ДИАГНОСТИКА</div>
<ul class="submenuItems">
<table>
<thead>
<tr>
<th>УСЛУГА</th>
<th>BYN</th>
<th>ВЫБРАТЬ</th>
</tr>
</thead>
<tbody>
<tr>
<td><span>Компьютерная диагностика</span></td>
<td>20</td>
<td><label><input type="checkbox" data-index="1" name="channelcost" value="20" onclick="calcItems(this);" /><span class="display">Компьютерная диагностика</span></label></td>
</tr>
<tr>
<td>Чтение и удаление кодов неисправностей</td>
<td>20</td>
<td><label><input type="checkbox" data-index="2" name="channelcost" onclick="calcItems(this);" value="20" /><span class="display">Чтение и удаление кодов неисправностей</span></label></td>
</tr>
</tbody>
</table>
</ul>
</li>
</li>
</ul>