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

Ajuda em programa feito para fixar o conteúdo

Boa noite, estou tentando criar um programa simples para tentar fixar o FOR, onde existe uma festa a qual somente terá acesso a pagina quem possui o código do convite. Caso o codigo esteja correto, a pessoa ira escrever o seu nome e do seu convidado. A pessoa terá 3 tentativas, após isso recebera uma outra mensagem e a pagina será recarregada.

Não sei o que estou fazendo de errado que assim que a pessoa coloca o codigo já entra na tela "home" da festa, sem passar pelas demais etapas do alert

<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 convidado =  parseInt(prompt("Escreva o codigo do seu convite"));
    var convite = 50;
    var tentativas = 3;
    var contador = 1;


    for (var convidado; convidado < convite.length; convidado++) {

        if(convidado == convite[convidado]){
            alert("Convite Aceito!");
            var nome = prompt("Digite seu nome completo");
            var acompanhante = prompt("Digite o nome do seu acompanhante");
            break;
         }

         if (convidado != convite[convidado]){
             alert("Codigo de convite errado, por favor tente novamente!");
             contador = contador + 1;
         }

         if (contador > tentativas){
             alert("Numero de tentativas esgotadas, por favor envie seu nome completo e o codigo do seu convite para XXXXX-XXXX");
             window.location.refresh();
         }
    }
}

lista();



</script>
1 resposta
solução!

Você declarou convite como inteiro:

var convite = 50;

E está usando como um array:

convite[convidado]

Outra coisa, no for você está re-declarando convidado.

Refiz o seu código, mas está um pouco diferente do que você escreveu.

Acho que assim faz mais sentido, a pessoa fornece o nome uma vez e tem 3 chances de acertar o codigo.

Mudei o nome de algumas variáveis, convite --> convidados, convidado --> codigo.

<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 convidados = ["felipe", "maria", "joao"];
    var tentativas = 3;
    var contador = 1;
    var nome = prompt("Digite seu nome");

    for (var i = 0; i < tentativas; i++) {
        var codigo = parseInt(prompt("Escreva o codigo do seu convite"))
        if (codigo < convidados.length && nome == convidados[codigo]) {
            alert("Convite Aceito!");
            break;
        } else {
            alert("Codigo de convite errado");
            contador = contador + 1;
        }
    }

    if (contador > tentativas){
        alert("Numero de tentativas esgotadas, voce foi barrado");
        window.location.refresh();
    }
}

lista();

</script>