2013-10-04 36 views
1

乘法单选按钮的值我有一个调查表格我开发并放入的jsfiddle http://jsfiddle.net/tMUJT/添加和与JavaScript

$('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 +栏3总×2 + column4总×3 + column5总×4 =

我尝试重新使用许多脚本,但无法让它工作 - 我的js技能并不是那么棒。如果有人可以帮助我让它在jsfiddle中工作,我会非常感激。谢谢!

回答

0

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

我喜欢用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">&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的,因为我觉得这更易读)

+0

每次我在小提琴IM点击一个单选按钮,得到了很多undefineds在总价值DIV – Kierchon

+0

@Kierchon对不起,放于首先错误的网址 – jcollum

+0

现在它工作。比我的解决方案更有效率...我不知道你是怎么做到的 – Kierchon