Feat(ReplaceNameIdSaleLine)
This commit is contained in:
		| @@ -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; | ||||
|   }); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user