我有一些复选框需要获取值,并计算新元素,但我需要计算何时选中以及何时未选中。
<div id="dodaci">
<input name="checkboxes1" id="checkboxes-1" value="100" type="checkbox">
<input name="checkboxes2" id="checkboxes-2" value="150" type="checkbox">
<input name="checkboxes3" id="checkboxes-3" value="150" type="checkbox">
<input name="checkboxes4" id="checkboxes-4" value="120" type="checkbox">
<input name="checkboxes5" id="checkboxes-5" value="70" type="checkbox">
</div>
<div id="cena1">750<div>
我需要将复选框的值添加到cena1中的值,并且我需要在未检查时获取减去?
这是我到目前为止的jQuery
$(function() {
$('input[type="checkbox"]').bind('click',function() {
$('#dodaci :checkbox:checked').each(function() {
$('#cena1').append(', '+ $(this).val()); });
});
});
答案 0 :(得分:2)
我想你需要类似下面的代码:
$(function() {
$('input[type="checkbox"]').bind('click',function() {
var value = parseInt($(this).val());
var cenaNum = parseInt($('#cena1').text());
if(this.checked){
$('#cena1').text(value+cenaNum);
}
else {
$('#cena1').text(cenaNum-value);
}
});
});
以下是小提琴的工作链接:
答案 1 :(得分:1)
使用$('#id:checked')
;
返回true
或false
,因此不要将其绑定到each()
方法
而我的意思是一个独特的ID
,如<input name="checkboxes1" id="checkboxes-1">
修改强>
变化:
$('#cena1').append(', '+ $(this).val());
类似于:(没有测试!! )
if ($('#id:checked')) {
$('#cena1')
.append(
parseInt($(this).text(), 10) +
parseInt($('#id:checked').val(), 10)
);
} else {
$('#cena1')
.append(
parseInt($(this).text(), 10) -
parseInt($('#id').not(':checked').val(), 10)
);
}
编辑II
这与您的问题没有直接关系,但最好将inputs
命名为ID
所以不是:
<input name="checkboxes1" id="checkboxes-1">
可是:
<input name="checkboxes-1" id="checkboxes-1">