From 9ecd94912317c41db1a6751bfa109e1a293fcb49 Mon Sep 17 00:00:00 2001 From: Rodia Date: Sat, 13 Jul 2024 11:25:12 -0500 Subject: [PATCH] Feat(ReplaceNameIdSaleLine) --- .../don_confiao/static/js/add_line.js | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tienda_ilusion/don_confiao/static/js/add_line.js b/tienda_ilusion/don_confiao/static/js/add_line.js index bfb38ed..4f6bc25 100644 --- a/tienda_ilusion/don_confiao/static/js/add_line.js +++ b/tienda_ilusion/don_confiao/static/js/add_line.js @@ -3,16 +3,27 @@ document.addEventListener('DOMContentLoaded', function(){ var formContainer = document.getElementById('formset-container'); var totalForms = document.getElementById('id_saleline_set-TOTAL_FORMS'); button.addEventListener('click', function(){ - // Clonar un formulario vacío var newForm = formContainer.querySelector('.form-container').cloneNode(true); - // Obtener el número actual de formularios var formCount = parseInt(totalForms.value); - // Actualizar los atributos de los nuevos campos del formulario var regex = new RegExp('__prefix__', 'g'); newForm.innerHTML = newForm.innerHTML.replace(regex, formCount); - // Añadir el nuevo formulario al contenedor + + var fields = newForm.querySelectorAll('[id^="id_saleline_set-"], [name^="saleline_set-"]'); + fields.forEach(function(field) { + var oldId = field.id; + var oldName = field.name; + + if (oldId) { + var newId = oldId.replace(/-\d+-/, '-' + formCount + '-'); + field.id = newId; + } + if (oldName) { + var newName = oldName.replace(/-\d+-/, '-' + formCount + '-'); + field.name = newName; + } + }); + formContainer.appendChild(newForm); - // Incrementar el total de formularios totalForms.value = formCount + 1; }); });