2016-12-03 63 views
1

我有一個表,自動使2個計算:日期的選擇後的天數獲取從表中輸入總的總計jQuery中

  1. 計算開始,從日曆兩個輸入日期字段日期結束,結果存儲爲字段(天)
  2. 3個字段的乘法(馬*天*價格),結果存儲在字段(總)中。 有一個按鈕,當我們點擊它時會添加一個新行。

我怎麼能計算總計天總計總要在表中顯示下面一排的結果數? 而我想在後期掌握輸入值,以便我使用php將它們存儲在表中。

1-表

<table class='table'> 
<tr> 
    <th class='th'>Nbr/horses</th> 
    <th class='th'>dateStart</th> 
    <th class='th'>dateEnd</th> 
    <th class='th'>Nbr/days</th> 
    <th class='th'>Price</th> 
    <th class='th'>Total</th> 
</tr> 
<tr> 
    <td class='td'><input type='number' min='1' name='horse' class='horse'/></td> 
    <td class='td'><input type='date' name='dateStart' class='datepicker dateStart'/></td> 
    <td class='td'><input type='date' name='dateEnd' class='datepicker dateEnd'/></td> 
    <td class='td days'><input type='text' name='days'/>0</td> 
    <td class='td'><input type='number' min='1' name='price' class='price'/></td> 
    <td class='td total'> <input type='text' name='total1'/></td> 
    <td class='td'><button type='button' class='button'>+</button></td> 
</tr> 

2-功能

let update = function(lineNode){ 
let dateStart = $(lineNode).find('.dateStart').datepicker('getDate'); 
let dateEnd = $(lineNode).find('.dateEnd').datepicker('getDate'); 
let days = Math.floor((dateEnd - dateStart)/(3600*24*1000)); 
days = days >= 0 ? days : 0; 

$(lineNode).find('.days').text(days); 

let horse = parseInt($(lineNode).find('.horse').val()); 
let price = parseInt($(lineNode).find('.price').val()); 
let total = horse * days * price; 

$(lineNode).find('.total').text(total+' €'); 
} 

    // add line after click 
    let addRow = function(lineNode){ 
    let clone = lineNode.cloneNode(true); 
    $(clone).insertAfter(lineNode); 
    reloadEffects(); 
    } 

    let reloadEffects = function(){ 
    $('.hasDatepicker').removeClass('hasDatepicker').attr('id', ''); 

$('.datepicker').datepicker(); 
$('.horse, .price, .datepicker').change(e => { 
    update(e.target.parentNode.parentNode); 
}); 
$('.button').click(e => { 
    addRow(e.target.parentNode.parentNode); 
}); 

};

// Start 

reloadEffects(); 

回答

0

var sum = 0; 
$(".total").each(function(index,value){ 
sum = sum + parseFloat($(this).find('input[name="total1"]').val()); 
}); 
//Sum in sum variable 
console.log(sum); 

應用相同的天!

工作小提琴:Fiddle

+0

我如何努力,使您的工作爲例,我失敗了。可能是如果你把它一把小提琴它會幫助我更多... –

+0

當然,我會添加一個鏈接,一旦我使它 –

+0

添加,請檢查它 –