由于某种原因,复选框的总和不会写入最终跨度。注册事件 onchange。但是复选框中的值仅从被选中的那个中写入,其余的是未定义的,因此不会相互累加。
$('input#set_1, input#set_2, input#set_3').change(function() {
var set_1 = $('input#set_1:checked').val();
var set_2 = $('input#set_2:checked').val();
var set_3 = $('input#set_3:checked').val();
var setup = set_1 + set_2 + set_3;
$('.setup').html(setup);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<span>Опция 1</span><input id="set_1" type="checkbox" value="3000">
</div>
<div>
<span>Опция 2</span><input id="set_1" type="checkbox" value="6000">
</div>
<div>
<span>Опция 3</span><input id="set_1" type="checkbox" value="1000">
</div>
<p>Результат: <span class="setup">0</span> р.</p>
最简单的选择是将每个人都放在一个班级,然后
.each
收集并计数。HTML 中的 ID 必须始终是唯一的!
这是一个通用的 jQuery 工作解决方案:
HTML: