1

我有一个我开发并放置在 jsfiddle http://jsfiddle.net/tMUJT/中的调查表

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

每个无线电输入的值为 1。

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

column1 总计 x 0 + column2 总计 x 1 + column3 总计 x 2 + column4 总计 x 3 + column5 总计 x 4 =

我尝试重新调整许多脚本的用途,但无法让它工作——我的 js 技能不是那么好。如果有人可以帮助我使它在 jsfiddle 中工作,我将不胜感激。谢谢!

4

1 回答 1

0

http://jsfiddle.net/3qh8D/1/

我喜欢为这类事情使用html5 数据属性。您可以随意称呼它,但我使用过data-factor(实际上weight会更有意义)。我认为最好将其放入标记中。这样,当您生成标记时,您可以将要查找的值直接绑定到 HTML 中,而不是在代码中某处显示“此 css 类等于 1 且此 css 类等于2"等

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

然后,每当其中一个单选按钮更改时,您只需滚动所有选中的输入并将data-factor值相加。

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

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

于 2013-10-04T18:49:01.480 回答