2011-09-06 55 views
0

我有一個要求地址的表單。在每個地址之後,我們詢問該人在該地址中居住了多長時間,其中<select>爲年和月。jQuery - 總計幾個數字<select>元素的值?

我有一個jQuery事件每個<select>改變時:

var prev_addresses = 0; 
$('select.months, select.years').change(function() { 

    // Calculate total months 
    var months = $('select.months').val(); 
    var years = $('select.years').val(); 
    var total_months = parseInt(months) + parseInt(years*12); // We parseInt() to avoid concatenation 

    console.log('Total months: '+total_months); 

    if(total_months < 12) { 
     // Find the next div.hidden-address 
     prev_addresses = prev_addresses+1; 
     console.log('Number of previous addresses: '+prev_addresses); 
     console.log(''); 
     $('div.hidden-address').clone(true).appendTo('#previous-addresses').slideToggle(); 
    } 
}); 

我想這是一直髮生的所有的人擁有不到12個月的地址的同時。然而,在事件第一次觸發後,每次更新<select>時,控制檯都只記錄第一組值(從原始的Year和Month選擇,即使現在有多個)。

即使在動態添加更多元素之後,我也希望在頁面上每<select>元素總計值爲。我怎樣才能做到這一點?

希望有道理,我很樂意澄清,如果你需要進一步的細節。

感謝,

傑克

回答

1

遍歷所有選擇框,和值添加到一個變量,像這樣:

var totalMonths = 0; 
$('select.months').each(function() { 
    totalMonths += $(this).val(); 
}); 

$('select.years').each(function() { 
    totalMonths += 12 * $(this).val(); 
});