我要做的是显示每个选中复选框的总数,例如:如果我选择一个值为100的复选框,然后选择另一个值200的复选框时,我得到300作为输出,如果我取消选择它,它将从总数中消失。我尽了我所能,但没有任何结果,需要一些帮助。
这是在html之上我使用PHP,这样我可以更快地更改的值
<?php
//basisprijs en titel die erbij komen, Dit moet aangepast worden.
$basisPrijs=
array(
array("titel" => 'template1', "prijs" => '100'),
array("titel" => 'template2', "prijs" => '200'),
array("titel" => 'template3', "prijs" => '300'),
array("titel" => 'template4', "prijs" => '400')
);
//onderdelen en titel die erbij komen, Dit moet aangepast worden.
$onderdelen=
array(
array("titel" => 'Table', "prijs" => '100'),
array("titel" => 'Checkbox', "prijs" => '200'),
array("titel" => 'List', "prijs" => '300'),
array("titel" => 'Selectbox', "prijs" => '400')
);
$titel="Bereken tool";
$check="Bestellen";
?>
这是在头和Jquery 之后
<body>
<!-- <script type="text/javascript"></script> -->
<div class="container">
<div id="content">
<h3><?php echo $titel; ?></h3>
<form action="index.php" method="post">
<div class="checkbox">
<?php foreach($onderdelen as $key => $value)
{echo "<div class='checkbox'>
<label><input class='check' type='checkbox' value='".$onderdelen[$key]["prijs"]."'
name='".$onderdelen[$key]["titel"]."'>"
.$onderdelen[$key]["titel"]."</label></div>"
;}?>
</div>
</form>
<div>
<button type="button" class="btn btn-default"><?php echo $check; ?></button>
<p id="output">output:</p>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$(".check").change(function() {
var prijs= this.checked ? this.value : '';
$("#output").text(prijs);
});
});
</script>
试试这个(我没有试过,但这是概念):
<script>
$(document).ready(function()
{
$('.check').change(function()
{
var totalPrijs=0;
$('.check').each(function () {
if (this.checked) {
totalPrijs+=parseInt($(this).val());
}
});
$("#output").text(totalPrijs);
});
});
</script>
您还可以通过在包装div
上附加change
侦听器来侦听复选框的更改。在处理程序中,将total
设置为零,并使用类.check
迭代所有检查的输入,将total
增加值,最后显示结果。
$('.checkbox').on('change', function () {
var total = 0;
$('.check:checked').val(function (idx, val) { // Iterates checked inputs only
total += +val;
return val;
});
$('#result').text(total);
});
jsFiddle上的工作演示。
那些需要多个复选框字段的人,可以使用这个稍微修改过的代码:
function countTotal () {
var total = 0;
$('#' + this.id + ' .check:checked').val(function (idx, val) {
total += +val;
return val;
});
$('#res' + this.id).text(total);
}
$('.checkbox').on('change', countTotal);
jsFiddle上的工作演示。
注意,现在包装div
需要一个id。
试试这个,
$(document).ready(function(){
$(".check").change(function(){
var tot = 0;
$(".check:checked").each(function(){
tot += parseInt($(this).val());
});
$("#output").text(tot);
});
});