iu9-ca-web-chat/assets/js/registration.js

69 lines
2.6 KiB
JavaScript
Raw Normal View History

2024-08-05 11:07:03 +00:00
document.addEventListener('DOMContentLoaded', function() {
2024-08-06 12:11:27 +00:00
const form = document.querySelector('form');
const submitButton = form.querySelector('button[type="submit"]');
const errorElement = document.getElementById('error');
form.addEventListener('keydown', function(event) {
2024-08-05 11:07:03 +00:00
const activeElement = document.activeElement;
2024-08-06 12:11:27 +00:00
const formElements = Array.from(form.elements);
const currentIndex = formElements.indexOf(activeElement);
if (activeElement.tagName === 'INPUT') {
if (event.key === 'Enter') {
event.preventDefault();
if (currentIndex === formElements.length - 1) {
submitButton.focus();
} else if (currentIndex !== -1 && formElements[currentIndex + 1]) {
formElements[currentIndex + 1].focus();
}
2024-08-05 11:07:03 +00:00
}
}
2024-08-06 12:11:27 +00:00
});
submitButton.addEventListener('focus', function() {
submitButton.classList.add('focus-visible');
});
submitButton.addEventListener('blur', function() {
submitButton.classList.remove('focus-visible');
});
form.addEventListener('submit', function(event) {
2024-08-11 12:17:53 +00:00
event.preventDefault();
validateForm();
2024-08-06 12:11:27 +00:00
});
2024-08-11 12:17:53 +00:00
async function validateForm() {
const name = document.getElementById('name').value.trim();
const nickname = document.getElementById('nickname').value.trim();
2024-08-06 12:11:27 +00:00
2024-08-11 12:17:53 +00:00
if (name === '' || nickname === '') {
2024-08-06 12:11:27 +00:00
errorElement.textContent = 'Пожалуйста, заполните все поля';
errorElement.style.display = 'block';
return false;
}
2024-08-11 12:17:53 +00:00
try {
// Отправка данных для регистрации
let response = await fetch('/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({name, nickname})
});
const result = await response.json();
if (result.status === 0) {
window.location.href = '/';
} else {
throw Error(result.error);
}
} catch(error) {
errorElement.textContent = 'Попробуйте еще раз';
errorElement.style.display = 'block';
}
2024-08-06 12:11:27 +00:00
2024-08-05 11:07:03 +00:00
}
});