From 2deaf6361ace23d8f075d37f6f3dcbb9cce64c87 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Sat, 8 Nov 2025 16:33:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BB=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=B0=20=D0=B2=20=D1=84=D0=BE=D1=80=D0=BC=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: - После создания временного комплекта он не отображался корректно в Select2 - Опция добавлялась в select после инициализации Select2 Решение: - Добавлена задержка (setTimeout) для корректной инициализации формы - Используется Select2 API (.append().trigger('change')) для добавления опции - Это обеспечивает правильное отображение названия комплекта в выпадающем списке 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../orders/templates/orders/order_form.html | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/myproject/orders/templates/orders/order_form.html b/myproject/orders/templates/orders/order_form.html index 70b6101..0983b3c 100644 --- a/myproject/orders/templates/orders/order_form.html +++ b/myproject/orders/templates/orders/order_form.html @@ -690,28 +690,28 @@ document.addEventListener('DOMContentLoaded', function() { const addButton = document.getElementById('add-item-btn'); addButton.click(); - // Получаем последнюю добавленную форму - const forms = container.querySelectorAll('.order-item-form'); - const lastForm = forms[forms.length - 1]; + // Небольшая задержка, чтобы форма полностью добавилась + setTimeout(function() { + // Получаем последнюю добавленную форму + const forms = container.querySelectorAll('.order-item-form'); + const lastForm = forms[forms.length - 1]; - // Устанавливаем значения для комплекта - const kitSelect = lastForm.querySelector('.select2-order-item'); - const quantityInput = lastForm.querySelector('[name$="-quantity"]'); - const priceInput = lastForm.querySelector('[name$="-price"]'); + // Устанавливаем значения для комплекта + const kitSelect = lastForm.querySelector('.select2-order-item'); + const quantityInput = lastForm.querySelector('[name$="-quantity"]'); + const priceInput = lastForm.querySelector('[name$="-price"]'); - // Добавляем опцию в select - const option = new Option(data.kit_name, `kit_${data.kit_id}`, true, true); - kitSelect.appendChild(option); + // Используем Select2 API для добавления опции + const newOption = new Option(data.kit_name, `kit_${data.kit_id}`, true, true); + $(kitSelect).append(newOption).trigger('change'); - // Триггерим изменение для Select2 - $(kitSelect).trigger('change'); - - // Устанавливаем количество и цену - if (quantityInput) quantityInput.value = '1'; - if (priceInput) { - priceInput.value = data.kit_price; - priceInput.dataset.originalPrice = data.kit_price; - } + // Устанавливаем количество и цену + if (quantityInput) quantityInput.value = '1'; + if (priceInput) { + priceInput.value = data.kit_price; + priceInput.dataset.originalPrice = data.kit_price; + } + }, 100); // Очищаем форму модального окна document.getElementById('temp-kit-name').value = '';