我正在为模拟网站登录,有两种类型的用户,每种类型都必须在登录后重定向到自己的个人资料页面。
但是,它只适用于一种类型(讲师),另一种不能重定向,控制台也不会给我任何错误
继承人html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Proyecto Final</title>
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="css/style2.css" />
<link rel="stylesheet" href="css/style3.css" />
</head>
<body>
<header>
<div class="conteiner cf">
<img src="images/logo2.png" alt="Logo" class="logo">
<nav>
<a href="index.html">Usuario</a>
<!-- <a href="#">About</a> -->
<a href="contact.html">Instructor</a>
</nav>
</div>
</header>
<div class="conteiner2 cf">
<aside class="Texto cf">
<h1 class="h1texto">Usuario</h1>
<form class="login-form">
<input type="text" placeholder="Username" id="txtUsername"/>
<input type="password" placeholder="Password"id="txtPassword"/>
<input type="button" value="Ingresar" id="btnIngresarLogin">
<p class="message">Estas registrado? <a href="register 2.html">Crear una nueva cuenta</a></p>
</form>
</aside>
</div>
<footer class="footerfinal cf">
<div class="conteinerfooter cf">
<p class="ParrafoFooter cf">2014 copyright</p>
<nav class="NavFooter">
<a href="#">Index</a>
<a href="#">About</a>
<a href="#">Contact</a>
</nav>
</div>
</footer>
<script src="js/logicaNegociosUsuarios.js"></script>
<script src="js/logicaInterfazInicioSesion.js"></script>
</body>
</html>
和JS
document.querySelector('#btnIngresarLogin').addEventListener('click', IniciarSesion);
function IniciarSesion(){
var sUsername ='';
var sPassword ='';
var bAccesoInstructor = false;
var bAccesoCliente = false;
sUsername = document.querySelector('#txtUsername').value;
sPassword = document.querySelector('#txtPassword').value;
bAccesoInstructor = validarCredenciales(sUsername, sPassword);
bAccesoCliente = validarCredenciales(sUsername, sPassword)
if (bAccesoInstructor === true){
window.location.href = 'perfilInstructor.html';
} else {
if(bAccesoCliente === true) {
window.location.href = 'perfilCliente.html';
}
}
}
function validarCredenciales(psUsername, psPassword){
var listaUsuarios = obtenerListaUsuarios();
var bAccesoInstructor = false;
var bAccesoCliente = false;
var usuario = obtenerListaUsuarios().map(function (usuario) {
if(usuario[10] === psUsername){
if(usuario[11] === psPassword){
if(usuario[13] === 'Instructor')
bAccesoInstructor = true;
localStorage.setItem('rolUsuarioActivoLS', JSON.stringify(usuario));
}
}
else{ if(usuario[10] === psUsername){
if(usuario[11] === psPassword){
if(usuario[13] === 'Cliente')
bAccesoCliente = true;
localStorage.setItem('rolUsuarioActivoLS', JSON.stringify(usuario))
}
}
}
});
if(!bAccesoInstructor && !bAccesoCliente){
alert('Credenciales incorrectos');
}
return bAccesoInstructor;
return bAccesoCliente;
}
我甚至尝试过所有&#34; bAccesoCliente&#34;是真的,看它是否会在默认情况下去那里,但它仍然无法正常工作
答案 0 :(得分:0)
首先,这两个是错的:
return bAccesoInstructor;
return bAccesoCliente;
单个函数不能返回两次,它永远不会到达第二个返回语句。
对于重定向,请尝试:
function validarCredenciales(psUsername, psPassword){
var listaUsuarios = obtenerListaUsuarios();
var pageToRedirect = false;
var usuario = obtenerListaUsuarios().map(function (usuario) {
if(usuario[10] === psUsername && usuario[11] === psPassword){
if(usuario[13] === 'Instructor') {
pageToRedirect = 'bAccesoInstructor';
localStorage.setItem('rolUsuarioActivoLS', JSON.stringify(usuario));
} else if(usuario[13] === 'Cliente') {
pageToRedirect = 'bAccesoCliente';
localStorage.setItem('rolUsuarioActivoLS', JSON.stringify(usuario))
}
}
});
if(!pageToRedirect){
alert('Credenciales incorrectos');
}
return pageToRedirect;
}
然后:
function IniciarSesion(){
var sUsername ='';
var sPassword ='';
sUsername = document.querySelector('#txtUsername').value;
sPassword = document.querySelector('#txtPassword').value;
var validatedCredentials = validarCredenciales(sUsername, sPassword);
if (validatedCredentials ==='bAccesoInstructor'){
window.location.href = 'perfilInstructor.html';
} else if(validatedCredentials ==='bAccesoCliente') {
window.location.href = 'perfilCliente.html';
}
}
答案 1 :(得分:0)
感谢您提供的解决方案。然而,最终这些都没有奏效。我的堂兄帮我找到了一个更简单的解决方案,在这里张贴以防万一有人需要它
document.querySelector('#btnIngresarLogin').addEventListener('click', IniciarSesion);
function IniciarSesion(){
var sUsername ='';
var sPassword ='';
var sPrivilegios = JSON.parse(localStorage.getItem('rolUsuarioActivoLS'))
sUsername = document.querySelector('#txtUsername').value;
sPassword = document.querySelector('#txtPassword').value;
validarCredenciales(sUsername, sPassword);
}
function validarCredenciales(psUsername, psPassword){
var listaUsuarios = obtenerListaUsuarios();
var bAcceso = false;
var usuario = obtenerListaUsuarios().map(function (usuario) {
if(usuario[10] === psUsername){
if(usuario[11] === psPassword){
bAcceso = true;
//Almaceno el usuario activo en LS
localStorage.setItem('rolUsuarioActivoLS', JSON.stringify(usuario));
if (bAcceso === true){ //Si el acceso es correcto
if(usuario[13] === 'Cliente'){//Si el usuario es tipo cliente
window.location.href = 'perfilCliente.html';
}else { //Si no es cliente, es intructor
window.location.href = 'perfilInstructor.html'
}
}
}
}
});
if(!bAcceso){
alert('Credenciales incorrectos');
}
return bAcceso;
}