1

选中不同复选框时,我在获取不同复选框的值时遇到了一点问题。这是我的代码

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"></script>
<script>
 $(document).ready(function(){
    $('input[type="checkbox"]').bind('click',function() 
    {
   var waterdm = $('#waterdm').val();
  $("#price").val(waterdm);
 });
});
</script>

<p><input type="checkbox" id="waterdm"  name="waterdm" value="10" />Water Damage</p>
<p><input type="checkbox" id="screendm" name="screendm" value="20" />Screen Damage</p>
<p><input type="checkbox" id="Chargerdm" name="Chargerdm" value="30" />Charger Damage</p>
<p><input type="checkbox" id="hdphdm" name="hdphdm" value="10" />Headphone Damage</p>

<p>
 Calculated Price: <input type="text" name="price" id="price" />
</p>

我想要的是每当用户签入复选框时,我需要获取这些值并显示签入另一个输入框的每个复选框值的总和。这意味着我需要将每个复选框的值相加。当用户取消选中任何复选框时,应从该总数中减去该值。我没有足够的jquery经验。请帮我。

4

5 回答 5

2

您需要遍历复选框。change当您谈论复选框时,事件更有意义..

用于on附加事件而不是bind

$(document).ready(function () {
    // cache the inputs and bind the events
    var $inputs = $('input[type="checkbox"]')
    $inputs.on('change', function () {
        var sum = 0;
        $inputs.each(function() {
        // iterate and add it to sum only if checked
           if(this.checked)
               sum += parseInt(this.value);
        });
        $("#price").val(sum);
    });
});

检查小提琴

于 2013-07-29T07:49:14.323 回答
2
 $(document).ready(function () {
     var waterdm = 0;
     $('input[type="checkbox"]').bind('click', function (e) {
         if (this.checked) {
             waterdm += eval(this.value);
         } else {
             waterdm -= eval(this.value);
         }

         $("#price").val(waterdm);
     });
 });

演示在这里

于 2013-07-29T07:53:01.923 回答
1

尝试这个

 $(document).ready(function(){
   var waterdm=0;  
   $('input[type="checkbox"]').on('click',function() 
    {
    waterdm = waterdm+parseInt($(this).val());
    $("#price").val(waterdm);
 });
});

演示

于 2013-07-29T07:52:09.910 回答
1

您可以使用以下代码

$(document).ready(function(){
    $('input[type="checkbox"]').click(function() 
    {
        var val = 0;
        $('input[type="checkbox"]:checked').each(function(){
            val+=parseInt($(this).val());
        });
          $("#price").val(val);
     });
});

演示

于 2013-07-29T07:57:20.223 回答
0

如果您想汇总所有选中的复选框,请尝试以下操作:

$('input[type="checkbox"]').bind('click',function() 
    {
        var sum = 0;
        $('input[type="checkbox"]:checked').each(function(){
           var val = parseInt($(this).val());
           sum += val;
        });
       $("#price").val(sum);
 });
于 2013-07-29T07:52:28.990 回答