javascript - 如何获取不同复选框的值并计算那些选中的复选框的值并显示在输入字段中?

标签 javascript jquery html

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

<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>

我想要的是每当用户 checkin 复选框时,我需要获取这些值并将 checkin 到另一个输入框的每个复选框值的总和显示出来。这意味着我需要对每个复选框的值求和 已选中。当用户取消选中任何复选框时,应从该总数中减去该值。我在 jquery 方面没有足够的经验。请帮助我。

最佳答案

您需要遍历复选框。当您谈论复选框时,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);
    });
});

Check Fiddle

关于javascript - 如何获取不同复选框的值并计算那些选中的复选框的值并显示在输入字段中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17918580/

相关文章:

jquery - 使用 jQuery 移动多个元素相对于另一个元素的位置

javascript - 这个实时预览 jQuery 脚本有什么问题?

javascript - 在找到的示例代码中,Array.prototype.find 的箭头函数回调中令人惊讶的语法是什么?

javascript - 无法使用 lodash 更改对象键值

javascript - 如果 JSON 数组为 NULL,则返回 -1 仅适用于某些数据

javascript - 如何遍历jquery选择

jquery - 使用 jQuery 为属性已定义为 "!important"的对象设置动画

javascript - Echarts:放大时线条消失

javascript - jQuery 包裹结束标签直到相同的开始标签

javascript - 如何替换 JavaScript 中出现的所有字符串?