document.addEventListener('DOMContentLoaded', function() { const inputs = document.querySelectorAll('#fluentform_3 .ff-el-form-control'); const phoneInput = document.querySelector('#fluentform_3 .ff-el-phone'); inputs.forEach(input => { // Добавляем класс при фокусе input.addEventListener('focus', function() { this.closest('.ff-el-group').classList.add('focused'); }); // Убираем класс при потере фокуса input.addEventListener('blur', function() { this.closest('.ff-el-group').classList.remove('focused'); }); // Добавляем/убираем класс при вводе input.addEventListener('input', function() { const group = this.closest('.ff-el-group'); if (this.value.trim() !== '') { group.classList.add('has-value'); } else { group.classList.remove('has-value'); } }); }); // Маска для телефона +7 (___) ___-__-__ if (phoneInput) { phoneInput.addEventListener('input', function(e) { let value = e.target.value.replace(/\D/g, ''); // Убираем все кроме цифр // Если начинается с 8, заменяем на 7 if (value.startsWith('8')) { value = '7' + value.slice(1); } // Если не начинается с 7, добавляем 7 if (!value.startsWith('7') && value.length > 0) { value = '7' + value; } let formattedValue = ''; if (value.length > 0) { formattedValue = '+7'; if (value.length > 1) { formattedValue += ' (' + value.slice(1, 4); if (value.length > 4) { formattedValue += ') ' + value.slice(4, 7); if (value.length > 7) { formattedValue += '-' + value.slice(7, 9); if (value.length > 9) { formattedValue += '-' + value.slice(9, 11); } } } } } e.target.value = formattedValue; }); // Обработка клавиш для корректного удаления phoneInput.addEventListener('keydown', function(e) { if (e.key === 'Backspace' || e.key === 'Delete') { const cursorPos = e.target.selectionStart; const value = e.target.value; // Если курсор на служебном символе, сдвигаем его if (cursorPos > 0 && [' ', '(', ')', '-'].includes(value[cursorPos - 1])) { setTimeout(() => { e.target.setSelectionRange(cursorPos - 1, cursorPos - 1); }, 0); } } }); } });