#javascript #jquery
#javascript #jquery
Вопрос:
Я знаю, это звучит смешно, но мне нужно рассчитать цены моего счета после удаления строки. Я следил за javascript-частью руководства по php из Weblesson Invoice. Это мой код javacript для удаления:
$(document).on('click','.remove_row',function(){
var row_id = $(this).attr("id");
var total_service_amount = $('#quote_service_actual_amount' row_id).val();
var sub_amount = $('#subtotal_amount').text();
var tax_rate = $('#tax_rate').text();
var tax_amount = $('#tax_amount').text();
var final_amount = $('#final_total_amt').text();
var result_amount = parseFloat(final_amount) - parseFloat(total_service_amount);
$('#final_total_amt').text(result_amount);
$('#row_id_' row_id).remove();
count = count - 1;
$('#total_service').val(count);
});
И это для вычисления при добавлении строк:
function cal_final_total(count){
var final_service_total = 0;
var subtotal = 0;
var tax_rates = 0;
var tax_amt = 0;
for(j=1; j<=count; j )
{
var hours = 0;
var rates = 0;
var actual_amount = 0;
rates = $("#quote_service_rates" j).val();
if(rates > 0){
hours = $("#quote_service_hours" j).val();
if(hours > 0){
actual_amount = parseFloat(rates) * parseFloat(hours);
$("#quote_service_actual_amount" j).val(actual_amount);
}
}
}
//Calculate subtotal
$(".quote_service_actual_amount").each(function(){
subtotal = parseFloat($(this).val());
// subtotal -= parseFloat($(this).val());
});
$("#subtotal_amount").val(subtotal.toFixed(2));
//Calculate tax total
tax_rates = $("#tax_rate").val();
if(tax_rates > 0){
tax_amt = parseFloat(tax_rates)/100 * parseFloat(subtotal);
$("#tax_amount").val(tax_amt.toFixed(2));
}
//Calculate final amount
final_service_total = parseFloat(subtotal) parseFloat(tax_amt);
$("#final_total_amt").val(Math.round(final_service_total * 100)/100);
}
Моя структура таблицы:
<table id="quote_service_table" class="table table-bordered" name="serviceTable">
<tr>
<th>Sr No.</th>
<th>Service</th>
<th>Description</th>
<th>Service Rates(RM)</th>
<th>Hours</th>
<th>Total Amount(RM)</th>
<th></th>
</tr>
<tr id="row_id_1">
<td>
<span id="quote_sr_no" name="quote_sr_no">1</span>
</td>
<td>
<input type="text" name="quote_service_type[]" autocomplete="off" id="quote_service_type1" class="form-control input-sm quote_service_type" list="type" required/>
<!-- <datalist id="type">
</datalist> -->
</td>
<td>
<input type="text" name="quote_service_description[]" autocomplete="off" id="quote_service_description1" list="descript" class="form-control input-sm quote_service_description" required/>
<!-- <datalist id="descript">
</datalist> -->
</td>
<td>
<input type="text" name="quote_service_rates[]" autocomplete="off" data-srno="1" id="quote_service_rates1" class="form-control input-sm number_only quote_service_rate" required/>
<!-- <datalist id="rate">
</datalist> -->
</td>
<td>
<input type="text" name="quote_service_hours[]" autocomplete="off" data-srno="1" id="quote_service_hours1" class="form-control input-sm number_only quote_service_hours" list="hour" required/>
<!-- <datalist id="hour">
</datalist> -->
</td>
<td>
<input type="text" name="quote_service_actual_amount[]" autocomplete="off" data-srno="1" id="quote_service_actual_amount1" class="form-control input-sm number_only quote_service_actual_amount" required readonly />
</td>
<td></td>
</tr>
</table>
<div align="right">
<input type="button" id="add_row" name="add_row" class="btn btn-success btn-xs" value=" "/>
</div>
</td>
</tr>
<tr align="right">
<td><label style="display:flex;justify-content:flex-end;text-align:right;width:600px" for="subtotal_amount">Subtotal:</td></td>
<td>
<input type="text" id="subtotal_amount" name="subtotal_amount" class="form-control number_only input-sm subtotal_amount" readonly/>
</td>
</tr>
<tr align="right">
<td><label style="display:flex;justify-content:flex-end;text-align:right;width:600px" for="tax_rate">Tax Rate(%):</td>
<td>
<input type="text" id="tax_rate" name="tax_rate" class="form-control number_only input-sm tax_rate" value="5" readonly/>
</td>
</tr>
<tr align="right">
<td><label style="display:flex;justify-content:flex-end;text-align:right;width:600px" for="tax_amount">Tax Total:</td>
<td>
<input type="text" id="tax_amount" name="tax_amount" class="form-control number_only input-sm tax_amount" readonly/>
</td>
</tr>
<tr align="right">
<td><label style="display:flex;justify-content:flex-end;text-align:right;width:600px" for="final_total_amt"><b>Estimated Total: RM</b></td></td>
<td>
<input type="text" id="final_total_amt" name="final_total_amt" class="form-control number_only input-sm final_total_amt" readonly/>
</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
Теперь, вычисляя, чтобы добавить общее количество, у меня нет проблем, но с вычитанием у меня проблемы. Я думал об игнорировании этой проблемы, но она не давала мне покоя. Любая помощь приветствуется.
Комментарии:
1. Не могли бы вы предоставить свою структуру таблицы, которая будет очень проста в предоставлении решения
2. Я не думаю, что вам нужно делать столько, сколько вы делаете, прямое решение — связать имя класса со всеми TD, которые должны быть одинаковыми. затем вы можете получить все td с именем класса, просто добавив значения этого