我尝试实现一个登录和注册系统,其中两个表单链接在一起,允许用户轻松地在它们之间切换。我还设置了一个模拟 API 来模拟后端交互,但我面临着几个挑战:
我正在寻找有关如何有效解决这些问题的详细示例或指南。
试试这个!
报名:
document.getElementById('registerForm').addEventListener('提交', function(event) { event.preventDefault();
let name = document.getElementById('name').value;
let email = document.getElementById('email').value;
let password = document.getElementById('password').value;
let messageElement = document.getElementById('message');
if (name.length <= 5) {
messageElement.textContent = 'Name must include more than 5 characters.';
return;
}
if (password.length <= 8) {
messageElement.textContent = 'Password must include more than 8 characters.';
return;
}
fetch('https://66e7e68bb17821a9d9da6e50.mockapi.io/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ name, email, password })
})
.then(response => response.json())
.then(data => {
messageElement.textContent = 'Redirecting to login...';
setTimeout(() => {
window.location.href = 'login.html';
}, 2000);
})
});
登录:
document.getElementById('loginForm').addEventListener('提交', function(event) { event.preventDefault();
let email = document.getElementById('email').value;
let password = document.getElementById('password').value;
let messageElement = document.getElementById('message');
fetch('https://66e7e68bb17821a9d9da6e50.mockapi.io/login')
.then(response => response.json())
.then(users => {
let user = users.find(user => user.email === email && user.password === password);
if (user) {
sessionStorage.setItem('userId', user.id);
sessionStorage.setItem('userName', user.name);
sessionStorage.setItem('userEmail', user.email);
window.location.href = 'home.html';
} else {
messageElement.textContent = 'Wrong email or password.';
}
})
.catch(error => {
console.error('Error fetching user data:', error);
messageElement.textContent = 'An error occurred. Please try again later.';
});
});