Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O codigo está considerando o botão cancelar como acerto

O código responde corretamente, mas no momento de digitar o código do convite se a pessoa clicar em cancelar no pop-up, o código está liberando como "convite aceito"

<meta charset="utf-8">
<h1>Lista de convidados - Festa 01/01</h1>

<script>

function mostra (frase){
    document.write(frase);
    pulaLinha();
}

function pulaLinha(){
    document.write("<br></br>")
}

function lista() {

    var tentativas = 3;
    var contador = 1;
    var codigos = [1, 2, 3, 4];
    var nome = prompt("Digite seu nome");


    for (var i = 0; i < tentativas; i++) {

        var codigo = prompt(nome + ", escreva o codigo do seu convite");

        if (codigo <= codigos.length && codigo != "") {
            alert("Convite Aceito!");
            break;
        } else {
            alert("Codigo de convite errado");
            contador = contador + 1;
        }
    }

    if (contador > tentativas){
        alert("Numero de tentativas esgotadas, por favor, entre em contato com XXXXX-XXXX");
           window.location.refresh();
    }

}

lista();

</script>
1 resposta
solução!

Olá Felipe, boa tarde!

Consegui solucionar seu problema...

É o seguinte:

Além do problema que você relatou, descobri outro. Ocorre quando se digita o "0 (zero)". O programa também está considerando como convite válido.

Então, resolvi da seguinte forma:

function lista() {
  var tentativas = 3;
  var contador = 1;
  var codigos = [1, 2, 3, 4];

  var nome = prompt('Digite seu nome:');

  for (var index = 0; index < tentativas; index++) {
    var codigo = prompt(nome + ', escreva o codigo do seu convite:');

    if (Number.isNaN(parseFloat(codigo))) {
      alert('Codigo de convite errado');
      contador = contador + 1;
    } else if (codigo <= codigos.length && codigo != 0) {
      alert('Convite Aceito!');
      break;
    } else {
      alert('Codigo de convite errado');
      contador = contador + 1;
    } 
  }

  if (contador > tentativas){
    alert('Numero de tentativas esgotadas, por favor, entre em contato com XXXXX-XXXX');
    window.location.refresh();
  }
}

lista();

Espero ter ajudado!