diff --git a/myproject/orders/static/orders/js/draft-creator.js b/myproject/orders/static/orders/js/draft-creator.js index 094ce6c..6a2ee6c 100644 --- a/myproject/orders/static/orders/js/draft-creator.js +++ b/myproject/orders/static/orders/js/draft-creator.js @@ -61,11 +61,23 @@ // Слушаем изменения в поле клиента (обязательное поле) const customerField = form.querySelector('select[name="customer"]'); if (customerField) { + // Обычное событие change customerField.addEventListener('change', function() { + console.log('[DraftCreator] Customer changed (native event):', this.value); if (this.value && !draftCreated) { scheduleCreateDraft(); } }); + + // Событие Select2 + if (window.jQuery && jQuery(customerField).data('select2')) { + jQuery(customerField).on('select2:select', function(e) { + console.log('[DraftCreator] Customer changed (select2 event):', e.params.data.id); + if (e.params.data.id && !draftCreated) { + scheduleCreateDraft(); + } + }); + } } // Слушаем изменения в других основных полях @@ -84,13 +96,27 @@ const fields = form.querySelectorAll(selector); fields.forEach(field => { const eventType = (field.tagName === 'SELECT' || field.type === 'checkbox') ? 'change' : 'input'; + + // Обычное событие field.addEventListener(eventType, function() { + console.log('[DraftCreator] Field changed:', field.name); // Создаём черновик только если выбран клиент const customer = form.querySelector('select[name="customer"]'); if (customer && customer.value && !draftCreated) { scheduleCreateDraft(); } }); + + // Для select полей также слушаем Select2 + if (field.tagName === 'SELECT' && window.jQuery && jQuery(field).data('select2')) { + jQuery(field).on('select2:select', function() { + console.log('[DraftCreator] Field changed (select2):', field.name); + const customer = form.querySelector('select[name="customer"]'); + if (customer && customer.value && !draftCreated) { + scheduleCreateDraft(); + } + }); + } }); }); @@ -136,12 +162,26 @@ const fields = form.querySelectorAll('select, input[type="number"]'); fields.forEach(field => { const eventType = field.tagName === 'SELECT' ? 'change' : 'input'; + + // Обычное событие field.addEventListener(eventType, function() { + console.log('[DraftCreator] Item field changed:', field.name); const customerField = document.querySelector('select[name="customer"]'); if (customerField && customerField.value && !draftCreated) { scheduleCreateDraft(); } }); + + // Для select полей товаров также слушаем Select2 + if (field.tagName === 'SELECT' && window.jQuery && jQuery(field).data('select2')) { + jQuery(field).on('select2:select', function() { + console.log('[DraftCreator] Item field changed (select2):', field.name); + const customerField = document.querySelector('select[name="customer"]'); + if (customerField && customerField.value && !draftCreated) { + scheduleCreateDraft(); + } + }); + } }); form.dataset.draftCreatorAttached = 'true';