1
resposta

Tenho duvidas de como limitar em três tentativas uma pagina estática de login utilizando o While .

Tive em mente como método de praticar o que aprendi no curso, limitar em 3 tentativas dois campos "input" , simulando uma tela de login como no exercício, mas não obtive sucesso pois após inserir os valores nos campos ele faz a validação e gasta todos os alertas, gostaria de saber se é possível utilizar a mesma logica do exercício para uma pagina estática com dois campos "input" ao invés de comandos prompt.

    <h3>Login</h3>

    <input type="text" id="user" name="usuario" placeholder="Usuario">
    <br>
    <br>
    <input type="text" id="senha" name="autenticacao" placeholder="Senha">
    <br>
    <br>
    <button>Login</button>


<script>


    var usuarioCadastrado = ["Alura","alura321"];


    function valida(){

        var usuario = [];
        usuario.push(input1.value);
        usuario.push(input2.value);

        var autenticador = [];

         for( var posicao = 0; posicao < usuarioCadastrado.length;posicao++){

            if(usuario[posicao] == usuarioCadastrado[posicao]){

                autenticador.push(true);

            }else {

                autenticador.push(false);

            }

      }              

          var maximoTentativas = 3;
        var tentativaAtual = 1;


           while(tentativaAtual <= maximoTentativas){


              if(autenticador[0] == true && autenticador[1] == true ){

                      alert("Login realizado com sucesso !!");

                     input1.value = " ";
                    input2.value = " ";             

                }else {

                    if (tentativaAtual == 3) {
                            alert("Número permitido de tentativas ultrapassado!");
                    } else {
                        alert("Login inválido. Tente novamente");

                         input1.value = " ";
                        input2.value = " ";

                    }


                }    

                    tentativaAtual = tentativaAtual +1 ; 
    }              
}


    var input1 = document.querySelector("#user");
    var input2 = document.querySelector("#senha");

    var button = document.querySelector("button");
    button.onclick = valida; 


</script>
1 resposta

Oi, não sei se o código está certo, mas vc pode tentar e verificar ?

<script>
    var usuariosCadastrados = [["Alura", "alura321"], ["OutroUsuario", "senha123"]];

    function valida() {
        var usuario = [input1.value, input2.value];
        var autenticador = [];

        for (var i = 0; i < usuariosCadastrados.length; i++) {
            var usuarioCadastrado = usuariosCadastrados[i];
            var autenticado = true;
            for (var j = 0; j < usuarioCadastrado.length; j++) {
                if (usuario[j] != usuarioCadastrado[j]) {
                    autenticado = false;
                    break;
                }
            }
            autenticador.push(autenticado);
        }

        var maximoTentativas = 3;
        var tentativaAtual = 1;
        var autenticado = false;

        while (tentativaAtual <= maximoTentativas && !autenticado) {
            autenticado = autenticador.some(function(a) { return a; });

            if (autenticado) {
                alert("Login realizado com sucesso!!");
                input1.value = "";
                input2.value = "";
            } else if (tentativaAtual == maximoTentativas) {
                alert("Número permitido de tentativas ultrapassado!");
            } else {
                alert("Login inválido. Tente novamente");
                input1.value = "";
                input2.value = "";
            }

            tentativaAtual++;
        }
    }

    var input1 = document.querySelector("#user");
    var input2 = document.querySelector("#senha");
    var button = document.querySelector("button");
    button.onclick = valida; 
</script>