2013-08-27 55 views
0

嗨,我一直在尋找的jQuery的腳本來概括從輸入和選擇選項的值,我發現這個腳本:總和從輸入值,並選擇在形式上

來源:jQuery checkbox and select - sum the values and add in var

DEMO:http://jsfiddle.net/H4d7W/

唯一的問題是我的表單包含多個輸入和多個選擇。

我的想法是這樣的:

REPLACE:

tot+=parseInt($('#more').val()); 
$('#usertotal').html(tot) 
}); 

    $('#more').change(function(){ 
     $('input:checkbox').trigger('change'); 
    }); 

FOR:

tot+=parseInt($('select > option:selected'').val()); 
$('#usertotal').html(tot) 
}); 

    $('select > option:selected'').change(function(){ 
     $('input:checkbox').trigger('change'); 
    }); 

我怎麼可以編輯代碼,任何想法來實現這一點。

在下面的鏈接中,我創建了一個Demo,第一個選擇是在INPUTS之間進行求和。

的jsfiddle DEMO:http://jsfiddle.net/B9ufP/

+4

完全取決於你的HTML的結構。至少你不應該在你的代碼中出現語法錯誤。請發佈您的HTML並創建一個http://jsfiddle.net/演示。另外,如果您有多個選擇元素或多重選擇元素,我不清楚。 –

+0

確定@FelixKling我已經創建了一個DEMO這裏是鏈接: http://jsfiddle.net/B9ufP/ – Ered

回答

1

jQuery的沒有一個reduce方法(還),但它確實有each,您可以使用到同樣的效果。

var sum = 0; 
$('select > option:selected').each(function() { 
    sum += parseInt($(this).val(), 10); 
}); 
+0

是的,但它將如何適用時,它必須得到多個輸入和選擇http://jsfiddle.net/ B9ufP/ – Ered

+1

您可以將多個選擇器傳遞給jQuery,逗號分隔。即'$('option:selected,input:checkbox:checked')。each(...' –

0

這就是我一直在尋找感謝您的幫助:

var $total = $('#usertotal'); 
$('input,select').change(function() { 
    var tot = 0; 
    $('input:checkbox:checked, select > option:selected').each(function() { 
     var per_op = $(this).attr('value'); 
     if (per_op) {  
     tot += Number(per_op); 
     } 
    }); 
    var final_result = tot.toFixed(2); 
    $total.html(final_result) 
}); 

DEMO:http://jsfiddle.net/zFCvV/6/

相關問題