获取已选中的复选框值,但未选中

时间:2014-04-18 16:24:24

标签: javascript jquery checkbox bind

我有一些复选框需要获取值,并计算新元素,但我需要计算何时选中以及何时未选中。

<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()); });
    });
});

2 个答案:

答案 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);
    }    
});
});

以下是小提琴的工作链接:

Demo : Jsfiddle link

答案 1 :(得分:1)

使用$('#id:checked');  返回truefalse,因此不要将其绑定到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">