1
resposta

Pessoal, pq o código não continua?

<meta charset="UTF-8">

<h1>PLANILHA DE PROGRESSÃO DE RISCO</h1>

informe o seu token de acesso: <input/> <button>entrar</button>


<script> // abertura mundo JS

    token    = 123;
    text    = document.querySelector("input");
    var key    = false;

    function texto(){

        if(text.value == token){
            alert("acesso liberado!")
            var key = true;
        }
        else{
            alert("acesso negado!");
        }
        return(key);
    }

    button = document.querySelector("button");
    button.onclick = texto;

    while( key == true ){
        alert("888888888888888")
        key = false;
    }

</script>
1 resposta

Olá, Eduardo, tudo bem?

A parte do código que você diz que não funciona é essa?

while( key == true ){
        alert("888888888888888")
        key = false;
    }

Bem, o código dentro do while nunca é executado porque a verificação key == true está sendo feita apenas uma vez, quando a página carrega. Se você quer que essa verificação seja feita sempre que você clicar no botão, você pode colocar ela dentro da função texto, que é chamada sempre que o botão é clicado:

  function texto() {

    if (text.value == token) {
      alert("acesso liberado!")
      key = true;
    }
    else {
      alert("acesso negado!");
    }

    if (key == true) {  // Verificação. Troquei o while para if
      alert("888888888888888")
      key = false;
    }

    // Comentei a linha abaixo, pois não precisamos retornar nada para a função.
    // return (key);
  }

Além disso, eu troquei o while para if, é mais apropriado já que a verificação será feita apenas uma vez. Dessa forma, a instrução alert("888888888888888") é executada caso a pessoa digite o token correto.

Eu também comentei a instrução return key, pois nesse caso não precisamos dar um retorno à função texto.

E uma dica em relação ao seu código: é sempre importante que declaremos as variáveis com alguma das palavras chave var, let ou const! Como abaixo:

var token = 123;
var text = document.querySelector("input");

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

Assim, outros desenvolvedores que forem ler seu código, saberão que elas estão sendo declaradas ali, e além disso torna o código mais "inteligente", pois ele reconhece o tipo da variável e fornece algumas ferramentas como o autocomplete.

Se você ainda tiver dúvida, estaremos aqui para ajudar! Bons estudos :)