Salir de un bucle sencillito

Leirlux

Hoy estoy especialmente espesito con intentar salir de un bucle WHILE dentro de una función de JavaScript en HTML. El código es el siguiente y el problema está en el CASO 2:

// Elegir opcion > Ocultar la otra
function funcionejercicio() {
  switch(document.formulario.opciones.value) {
  // Caso 1
  case "Nuevo empleado":
  alert("Has seleccionado NUEVO REGISTRO");
  document.getElementById("myP").style.visibility="visible";
  document.getElementById("enviar").style.visibility="visible";
  document.getElementById("divpass").style.visibility="hidden";
  break;
  
// Caso 2 case "RRHH": document.getElementById("enviar").style.visibility="hidden"; document.getElementById("myP").style.visibility="hidden"; alert("Has seleccionado RRHH");
var password; var pass1="adminrrhh"; password=prompt('Introduce una contraseña',''); while (password!=null) { if (password==pass1) { alert('Contraseña correcta! Click ACEPTAR para continuar!'); document.getElementById("enviar").style.visibility="visible"; } else { document.getElementById("enviar").style.visibility="hidden"; document.getElementById("myP").style.visibility="hidden"; password=prompt('Contraseña incorrecta! Vuelva a intentarlo',' '); } }; break;
} }

El problema está en que si acierto la password, sigue diciendo que está bien UNA y OTRA VEZ. No veo cómo salir ahora mismo ... ¿Alguien se anima a echarme una mano? Gracias :)

Meleagant
function functionEjercicio(){
    switch(document.formulario.opciones.value){
         case "Nuevo empleado":
              procesarNuevoEmpleado();
              break;
         case "RRHH":
              procesarRRHH();
              break;
     }
};

Mueve el código de cada caso a sus funciones correspondientes, porque tienes un cristo guapo en el switch.

Y sobre lo que comentas...

while (password!=null)

¿No te parece que esa condición se va a cumplir cuando la contraseña sea correcta?

2 respuestas
Leirlux

#2 Si ... a ver, me explico con lo que quiero hacer:

  • Tengo un input tipo select en un formulario; si escojo la opcion del CASO 2, saca un prompt de JS en el que me pregunta la password, y si la password no coincide con lo establecido (adminrrhh) oculta el botón de enviar el formulario y repregunta lo mismo.

Es un poco tonto lo del while, pero es que no se me ocurre ahora mismo nada.

EDIT: problema solucionado; acabo de darme cuenta de que no hacía falta el bucle. Gracias :)

KoRMuZ

#2 Entonces tendrás que poner

while (password!=pass1)

Porque si pones != null, va a entrar por ahí cada vez que la contraseña NO SEA NULA, o sea, si escribe algo, entra por ahí.

Espero haberte sido de ayuda :)

1 respuesta
Leirlux

#4 ¡Gracias! Acabo de darme cuenta al igual jaja

Usuarios habituales

  • Leirlux
  • KoRMuZ
  • Meleagant