使用javascript添加和乘以单选按钮值

使用javascript添加和乘以单选按钮值,javascript,jquery,radio-button,add,multiplication,Javascript,Jquery,Radio Button,Add,Multiplication,我有一份我开发的调查表,放在JSFIDLE中 每个收音机输入值为1 我需要在每列下面显示每列的总和,然后根据下面的计算显示最终总和: 第1列总计x 0+第2列总计x 1+第3列总计x 2+第4列总计x 3+第5列总计x 4= 我尝试重新设计了许多脚本,但就是没能让它正常工作——我的js技能不是很好。如果有人能帮助我在JSFIDLE中工作,我将非常感激。谢谢 我喜欢用它来做这类事情。你可以随意称呼它,但我使用了数据因子(实际上权重会更有意义)。我认为最好把它放在标记中。这样,当您生成标记时,您可

我有一份我开发的调查表,放在JSFIDLE中

每个收音机输入值为1

我需要在每列下面显示每列的总和,然后根据下面的计算显示最终总和:

第1列总计x 0+第2列总计x 1+第3列总计x 2+第4列总计x 3+第5列总计x 4=

我尝试重新设计了许多脚本,但就是没能让它正常工作——我的js技能不是很好。如果有人能帮助我在JSFIDLE中工作,我将非常感激。谢谢

我喜欢用它来做这类事情。你可以随意称呼它,但我使用了
数据因子
(实际上
权重
会更有意义)。我认为最好把它放在标记中。这样,当您生成标记时,您可以将您要查找的值直接绑定到HTML中,而不是在代码中的某个地方进行某种映射,即“这个css类等于1,这个css类等于2”等等


(小提琴在coffeescript中,因为我发现它更可读)

每次我点击小提琴中的单选按钮时,我都会在totalValue div中得到很多未定义项。是的,它现在可以工作了。比我的解决方案更有效。。。我不知道你是怎么做到的it@Kierchon谢谢男人;请随便问个问题,我会尽力帮助我现在就明白了。我以前从未见过数据因子或使用过它们,所以我不明白你怎么能像那样循环使用它们,但我现在明白了。好的解决方案你能解释一下
factor=$inp.attr('data-factor')|0什么是
| | 0
??也
total+=+因子因子的+前面是什么?
$('input:radio').change(function(){ 
  var tot=0;
  $('input:radio:checked').each(function(){
    tot+=parseInt($(this).val());
  });
  tot+=parseInt($('#more').val());
    $('#usertotal').html(tot)
  });

  $('#more').change(function(){
    $('input:radio').trigger('change');
});
<td bgcolor="#00CC66"><input type="radio" data-factor='1' name="checkbox" id="checkbox1" value="1"></td>
<td>On shelf</td>
<td bgcolor="#FFFF33"><input type="radio" data-factor='2' name="checkbox" id="checkbox2" value="1"></td>
<td>No</td>
<td bgcolor="#fba459"><input type="radio" data-factor='3' name="checkbox" id="checkbox3" value="1"></td>
<td class="dots">&nbsp;</td>
// column1 total x 0 + column2 total x 1 + column3 total x 2 + column4 total x 3 + column5 total x 4 =

$(':input[type=radio]').change(function() {
  var $inp, factor, inp, inputs, total, _i, _len;
  total = 0;
  inputs = $('input[type=radio]:checked');
  for (_i = 0, _len = inputs.length; _i < _len; _i++) {
    inp = inputs[_i];
    $inp = $(inp);
    factor = $inp.attr('data-factor') || 0;
    total += +factor;
  }
  return $('#totalValue').text("Total value:" + total);
});