const emailInput = document.getElementById('email'); const emailMessage = document.getElementById('emailMessage'); const statusIcon = document.getElementById('statusIcon'); const submitBtn = document.getElementById('submitBtn'); let emailTimeout = null; // Блокировка русских букв и недопустимых символов emailInput.addEventListener('input', function() { const email = this.value; // Удаляем русские буквы и другие недопустимые символы this.value = email.replace(/[а-яА-ЯёЁ]/g, ''); checkEmailValidity(); }); emailInput.addEventListener('keydown', function(e) { // Блокировка ввода русских букв if ((e.key >= 'а' && e.key <= 'я') || (e.key >= 'А' && e.key <= 'Я') || e.key === 'ё' || e.key === 'Ё') { e.preventDefault(); } }); function checkEmailValidity() { const email = emailInput.value.trim(); // Очищаем предыдущий таймер clearTimeout(emailTimeout); // Сбрасываем состояние statusIcon.className = 'status-icon'; emailMessage.textContent = ''; emailMessage.className = 'validation-message'; submitBtn.disabled = true; // Если поле пустое, выходим if (!email) { return; } // Простая валидация формата const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(email)) { statusIcon.className = 'status-icon taken'; emailMessage.textContent = 'Неверный формат email'; emailMessage.className = 'validation-message invalid'; return; } // Показываем проверку statusIcon.className = 'status-icon checking'; emailMessage.textContent = 'Проверка...'; emailMessage.className = 'validation-message loading'; // Задержка перед проверкой emailTimeout = setTimeout(() => { checkEmailAvailability(email); }, 500); } function checkEmailAvailability(email) { window.plumnetApi.checkEmail(email) .then(data => { if (data.valid && data.available) { statusIcon.className = 'status-icon available'; emailMessage.textContent = data.message; emailMessage.className = 'validation-message valid'; submitBtn.disabled = false; } else { statusIcon.className = 'status-icon taken'; emailMessage.textContent = data.message; emailMessage.className = 'validation-message invalid'; submitBtn.disabled = true; } }) .catch(error => { console.error('Error:', error); statusIcon.className = 'status-icon taken'; emailMessage.textContent = 'Ошибка проверки email'; emailMessage.className = 'validation-message invalid'; submitBtn.disabled = true; }); } // Предотвращаем отправку формы если email невалиден document.getElementById('emailForm').addEventListener('submit', function(e) { if (submitBtn.disabled) { e.preventDefault(); alert('Пожалуйста, введите корректный и доступный email'); } }); // Фокус на поле email при загрузке document.addEventListener('DOMContentLoaded', function() { emailInput.focus(); });