Исправлено отображение временного комплекта в форме заказа

Проблема:
- После создания временного комплекта он не отображался корректно в Select2
- Опция добавлялась в select после инициализации Select2

Решение:
- Добавлена задержка (setTimeout) для корректной инициализации формы
- Используется Select2 API (.append().trigger('change')) для добавления опции
- Это обеспечивает правильное отображение названия комплекта в выпадающем списке

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-08 16:33:18 +03:00
parent f82f4f25dd
commit 2deaf6361a

View File

@@ -690,28 +690,28 @@ document.addEventListener('DOMContentLoaded', function() {
const addButton = document.getElementById('add-item-btn'); const addButton = document.getElementById('add-item-btn');
addButton.click(); addButton.click();
// Получаем последнюю добавленную форму // Небольшая задержка, чтобы форма полностью добавилась
const forms = container.querySelectorAll('.order-item-form'); setTimeout(function() {
const lastForm = forms[forms.length - 1]; // Получаем последнюю добавленную форму
const forms = container.querySelectorAll('.order-item-form');
const lastForm = forms[forms.length - 1];
// Устанавливаем значения для комплекта // Устанавливаем значения для комплекта
const kitSelect = lastForm.querySelector('.select2-order-item'); const kitSelect = lastForm.querySelector('.select2-order-item');
const quantityInput = lastForm.querySelector('[name$="-quantity"]'); const quantityInput = lastForm.querySelector('[name$="-quantity"]');
const priceInput = lastForm.querySelector('[name$="-price"]'); const priceInput = lastForm.querySelector('[name$="-price"]');
// Добавляем опцию в select // Используем Select2 API для добавления опции
const option = new Option(data.kit_name, `kit_${data.kit_id}`, true, true); const newOption = new Option(data.kit_name, `kit_${data.kit_id}`, true, true);
kitSelect.appendChild(option); $(kitSelect).append(newOption).trigger('change');
// Триггерим изменение для Select2 // Устанавливаем количество и цену
$(kitSelect).trigger('change'); if (quantityInput) quantityInput.value = '1';
if (priceInput) {
// Устанавливаем количество и цену priceInput.value = data.kit_price;
if (quantityInput) quantityInput.value = '1'; priceInput.dataset.originalPrice = data.kit_price;
if (priceInput) { }
priceInput.value = data.kit_price; }, 100);
priceInput.dataset.originalPrice = data.kit_price;
}
// Очищаем форму модального окна // Очищаем форму модального окна
document.getElementById('temp-kit-name').value = ''; document.getElementById('temp-kit-name').value = '';