javascript没有重定向到不同的html页面

时间:2017-08-30 00:54:30

标签: javascript html

我正在为模拟网站登录,有两种类型的用户,每种类型都必须在登录后重定向到自己的个人资料页面。

但是,它只适用于一种类型(讲师),另一种不能重定向,控制台也不会给我任何错误

继承人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;是真的,看它是否会在默认情况下去那里,但它仍然无法正常工作

2 个答案:

答案 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;
}