37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
// public/register.js
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const emailInput = document.getElementById('email');
|
|
const emailStatus = document.getElementById('emailStatus');
|
|
|
|
let debounceTimeout;
|
|
|
|
emailInput.addEventListener('input', () => {
|
|
clearTimeout(debounceTimeout);
|
|
const email = emailInput.value.trim();
|
|
|
|
if (!email) {
|
|
emailStatus.textContent = '';
|
|
return;
|
|
}
|
|
|
|
// 300ms warten, um zu vermeiden, dass bei jedem Tastendruck eine Anfrage rausgeht
|
|
debounceTimeout = setTimeout(async () => {
|
|
try {
|
|
const res = await fetch(`/api/check-email?email=${encodeURIComponent(email)}`);
|
|
const data = await res.json();
|
|
if (data.exists) {
|
|
emailStatus.textContent = '❌ Diese E-Mail ist schon vergeben';
|
|
emailStatus.style.color = 'red';
|
|
} else {
|
|
emailStatus.textContent = '✅ E-Mail ist frei';
|
|
emailStatus.style.color = 'green';
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
emailStatus.textContent = 'Fehler bei der Prüfung';
|
|
emailStatus.style.color = 'orange';
|
|
}
|
|
}, 300);
|
|
});
|
|
}); |