我有一个调查表格,我开发并放在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 total x 0 + column2 total x 1 + column3 total x 2 + column4 total x 3 + column5 total x 4 =
我尝试重新设计许多脚本但却无法让它工作 - 我的js技能并不是那么好。如果有人能帮助我让它在jsfiddle工作,我会非常感激。谢谢!
答案 0 :(得分:0)
我喜欢使用html5 data attributes来做这类事情。您可以将其称为“您喜欢的”,但我使用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"> </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中,因为我发现它更具可读性)