From baa9780ce1d786e3ba0a402d54fddb97251c6bec Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Fri, 2 Jan 2026 14:01:42 +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:=20quantity=20=D0=BE=D0=B1=D0=BD=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D1=80=D0=B8=20=D1=81?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B5=20=D0=B5=D0=B4=D0=B8=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D1=8B=20=D0=BF=D1=80=D0=BE=D0=B4=D0=B0=D0=B6=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Проблема: при смене единицы продажи с базовой на другую поле quantity визуально показывало 1, но при отправке формы значение терялось - Решение: при смене единицы проверяем quantity и устанавливаем минимальное значение если оно пустое/нулевое - Изменения: - sales-units.js: добавлена проверка и установка min_quantity при смене единицы --- .../products/static/products/js/sales-units.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/myproject/products/static/products/js/sales-units.js b/myproject/products/static/products/js/sales-units.js index 6a002d1..c7d1bca 100644 --- a/myproject/products/static/products/js/sales-units.js +++ b/myproject/products/static/products/js/sales-units.js @@ -181,10 +181,22 @@ return; } - // При смене единицы - обновить цену и остатки + // При смене единицы - обновить цену, остатки и quantity salesUnitSelect.addEventListener('change', function() { updatePriceOnUnitChange(salesUnitSelect, priceInput, isCustomPriceInput); displayAvailableQuantity(salesUnitSelect, availableQtyDisplay); + + // ИСПРАВЛЕНИЕ: При смене единицы сохраняем quantity или ставим минимум + if (quantityInput) { + const currentQty = parseFloat(quantityInput.value) || 0; + const selectedOption = salesUnitSelect.options[salesUnitSelect.selectedIndex]; + const minQty = selectedOption ? parseFloat(selectedOption.getAttribute('data-min-qty')) || 1 : 1; + + // Если quantity пустое/нулевое - установить минимум + if (currentQty === 0) { + quantityInput.value = minQty; + } + } }); // Отследить ручное изменение цены