Как сделать вычисления на javascript из моего набора форм в django?
У меня есть сомнение, что происходит то, что мне уже удалось, чтобы моя первая форма внутри таблицы могла выполнять операции и представлять их.
Я также смог создать динамический набор форм.
Но теперь у меня возникла проблема: Я хочу, чтобы мой набор форм в Django выполнял различные вычисления и представлял их.
Есть идеи? javascript, который я разместил, я следовал ему из нескольких учебников, проблема становится сложной, потому что я должен использовать JS для расчетов и что он также является динамическим, я не знаю, с чего начать
Забудьте о формате, я все еще не установил HTML правильно ... Я просто хочу умножить зеленый вход (количество) на красный вход (цена за единицу), поместить итог в синий вход (общая цена), сложить синие и представить их в фиолетовом входе (итого)
Спасибо за помощь :D
Я поместил код, который я уже использовал
add-parts-row.js
function updateEmptyFormIDs(element,totalForms){
var thisInput=element
var currentName=element.attr('name')
//THIS IS WHAT PREFIX REPLACES WITH totalForms
var newName=currentName.replace(/__prefix__/g,totalForms)
//this is what replaces name with the number totalForms
thisInput.attr('name',newName)
//this is what replaces id with the totalForms number
thisInput.attr('id',"id_"+newName)
var newFormRow=element.closest(".form-row");
var newRowId="row_id_"+newName
newFormRow.attr("id",newRowId)
newFormRow.addClass("new-parent-row")
var parentDiv=element.parent();
parentDiv.attr("id","parent_id_"+newName)
var inputLabel=parentDiv.find("label")
inputLabel.attr("for","id_"+newName)
return newFormRow
}
// you click the button and it adds more rows
$( "#add_more" ).click(function(e) {
var formId="id_form-TOTAL_FORMS"
var emptyRow=$("#empty-row").clone();
emptyRow.attr("id",null)
var totalForms=parseInt($('#'+formId).val());
var newFormRow;
emptyRow.find("input, checkbox").each(function(){
newFormRow=updateEmptyFormIDs($(this),totalForms)
})
$(".form-row:last").after(newFormRow)
$('#'+formId).val(totalForms+1);
});
calculos.js
function multiplicar(){
var quantity=parseInt(document.getElementById('id_quantity').value);
var unit_price=document.getElementById('id_unit_price').value;
var total_price=document.getElementById('id_total_price');
total_price.value=quantity*unit_price;
}
function taxes_free() {
var total_price=document.getElementById('id_total_price').value;
var total=document.getElementById('id_total');
if (document.getElementById('id_tax_free').checked){
var libre_impuestos = total_price*0.24;
total.value=total_price - libre_impuestos;
}
}
function totales(){
var descuento=document.getElementById('id_descuento').value;
var total=document.getElementById('id_total').value;
totales=(descuento * total) / 100;
document.getElementById("id_total").value = totales;
}