Feat(ReplaceNameIdSaleLine)
This commit is contained in:
		| @@ -3,16 +3,27 @@ document.addEventListener('DOMContentLoaded', function(){ | |||||||
|   var formContainer = document.getElementById('formset-container'); |   var formContainer = document.getElementById('formset-container'); | ||||||
|   var totalForms = document.getElementById('id_saleline_set-TOTAL_FORMS'); |   var totalForms = document.getElementById('id_saleline_set-TOTAL_FORMS'); | ||||||
|   button.addEventListener('click', function(){ |   button.addEventListener('click', function(){ | ||||||
|     // Clonar un formulario vacío |  | ||||||
|     var newForm = formContainer.querySelector('.form-container').cloneNode(true); |     var newForm = formContainer.querySelector('.form-container').cloneNode(true); | ||||||
|     // Obtener el número actual de formularios |  | ||||||
|     var formCount = parseInt(totalForms.value); |     var formCount = parseInt(totalForms.value); | ||||||
|     // Actualizar los atributos de los nuevos campos del formulario |  | ||||||
|     var regex = new RegExp('__prefix__', 'g'); |     var regex = new RegExp('__prefix__', 'g'); | ||||||
|     newForm.innerHTML = newForm.innerHTML.replace(regex, formCount); |     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); |     formContainer.appendChild(newForm); | ||||||
|     // Incrementar el total de formularios |  | ||||||
|     totalForms.value = formCount + 1; |     totalForms.value = formCount + 1; | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user