jQuery - 更新仅适用于许多字段之一

dvo*_*utt 0 html javascript jquery

我正在尝试构建一个表单,如果您更新任何输入,它将更新总和.现在只有第一个输入正在工作.我希望在所有输入中使用单个类,因为页面是动态的,ID可以经常更改.

这是jsfiddle:

的jsfiddle

这是代码:

var productCost = function (input, output, changeOn) {
  var reloadCalcs = function () {
    var sum = 0;
    $(input).each(function() {     
      sum += parseFloat($(input).val());    
    }); 
    $(output).html(sum);
  };
  $(function () {
    $(changeOn).change(function () {
      reloadCalcs();
    });
    $(changeOn).trigger('change');             
  });
};

productCost('.product','.sum','input');
Run Code Online (Sandbox Code Playgroud)

orh*_*rik 5

通过使用

sum += parseFloat($(input).val());
Run Code Online (Sandbox Code Playgroud)

你告诉总和要添加.product自身的值,因为.product选择器将有多个元素,它将选择第一个.
要解决此问题,您应该使用this:

sum += parseFloat($(this).val());
Run Code Online (Sandbox Code Playgroud)