2013-10-04 67 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