From 91383a2bf7d6bd7781c0fce5c7969132072d5d4d Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Tue, 9 Dec 2025 00:51:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BF=D0=BE=D0=B4=D1=80=D0=BE=D0=B1=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=20=D0=B2=20=D1=81=D0=BA=D1=80?= =?UTF-8?q?=D0=B8=D0=BF=D1=82=20=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D1=83=D1=81=D1=82=D1=8B=D1=85=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orders/templates/orders/order_form.html | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/myproject/orders/templates/orders/order_form.html b/myproject/orders/templates/orders/order_form.html index e59a658..a699d8c 100644 --- a/myproject/orders/templates/orders/order_form.html +++ b/myproject/orders/templates/orders/order_form.html @@ -853,12 +853,16 @@ document.addEventListener('DOMContentLoaded', function() { // Обработчик submit - очищаем пустые строки перед валидацией orderForm.addEventListener('submit', function(e) { + console.log('[Form Cleanup] Начало очистки пустых форм товаров'); + // Находим все формы товаров const itemForms = document.querySelectorAll('.order-item-form'); + console.log('[Form Cleanup] Найдено форм:', itemForms.length); - itemForms.forEach(form => { + itemForms.forEach((form, formIndex) => { // Пропускаем уже удалённые формы if (form.classList.contains('deleted')) { + console.log(`[Form Cleanup] Форма ${formIndex}: уже удалена, пропуск`); return; } @@ -875,12 +879,21 @@ document.addEventListener('DOMContentLoaded', function() { const hasQuantity = quantityField && quantityField.value && quantityField.value.trim(); const hasPrice = priceField && priceField.value && priceField.value.trim(); + console.log(`[Form Cleanup] Форма ${formIndex}:`); + console.log(` - product: ${hasProduct || '(пусто)'}`); + console.log(` - kit: ${hasKit || '(пусто)'}`); + console.log(` - quantity: ${hasQuantity || '(пусто)'}`); + console.log(` - price: ${hasPrice || '(пусто)'}`); + // Если ВСЁ пусто — это мусорная строка, удаляем const isCompletelyEmpty = !hasProduct && !hasKit && !hasQuantity && !hasPrice; + console.log(` - Полностью пустая? ${isCompletelyEmpty}`); + if (isCompletelyEmpty) { // Если есть ID (сохранённая позиция) — помечаем на удаление if (idField && idField.value) { + console.log(` - Действие: помечаем DELETE (есть ID: ${idField.value})`); const deleteCheckbox = form.querySelector('input[name$="-DELETE"]'); if (deleteCheckbox) { deleteCheckbox.checked = true; @@ -888,12 +901,16 @@ document.addEventListener('DOMContentLoaded', function() { form.classList.add('deleted'); form.style.display = 'none'; } else { + console.log(` - Действие: удаляем из DOM (нет ID)`); // Новая несохранённая форма — просто удаляем из DOM form.remove(); } + } else { + console.log(` - Действие: оставляем (не пустая, пойдёт на валидацию)`); } }); + console.log('[Form Cleanup] Очистка завершена'); // Всё остальное идёт на валидацию Django как есть }); });