2025-11-24 14:51:55 +07:00

65 lines
1.7 KiB
JavaScript

document.getElementById("registerForm").addEventListener("submit", function (e) {
e.preventDefault();
let username = document.getElementById("username").value.trim();
let email = document.getElementById("email").value.trim();
let password = document.getElementById("password").value.trim();
let confirmPassword = document.getElementById("confirmPassword").value.trim();
let errorBox = document.getElementById("errorBox");
errorBox.style.display = "none";
// Validasi
if (!username || !email || !password || !confirmPassword) {
showError("Semua field harus diisi");
return;
}
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
showError("Format email tidak valid");
return;
}
if (password.length < 6) {
showError("Password minimal 6 karakter");
return;
}
if (password !== confirmPassword) {
showError("Password dan konfirmasi password tidak cocok");
return;
}
let users = JSON.parse(localStorage.getItem("users") || "[]");
if (users.some(u => u.username === username)) {
showError("Username sudah digunakan");
return;
}
if (users.some(u => u.email === email)) {
showError("Email sudah digunakan");
return;
}
// Simpan user baru
users.push({
id: Date.now().toString(),
username,
email,
password,
role: "player"
});
localStorage.setItem("users", JSON.stringify(users));
alert("Registrasi berhasil! Silakan login.");
window.location.href = "login.html";
});
function showError(msg) {
let box = document.getElementById("errorBox");
box.innerText = msg;
box.style.display = "block";
}