Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Ao executar o codigo mostra de começo a mensagem de acerto

<meta charset="UTF-8">

<input/>
<button>Compare com o número que estou pensando!</button>

<script>
     var segredos = [5, 7, 6];
    var input = document.querySelector("input");

    function verifica() {
        var achou = false;
        for(var posicao = 0; posicao < segredos.lenght; posicao++){
            if(input.value == segredos[i]) {
                alert("Acertou, Mizeravi!");
                achou = true;
                break;
            }
        }
        if(achou == false)
            alert("Eroou!");
    }
    var button = document.querySelector("button");
    button.onclick = verifica;
</script>

Aparece a mensagem de acerto assim que recarrego a pagina, sem ao menos apertar o botão para chamar a função 'verifica'

6 respostas

Oi Felipe, rodei teu código aqui mas diferente do que você falou ele só aparecia mensagem de erro, mesmo colocando um dos valores do array segredo.

Percebi então dois erros um está nessa linha:

for(var posicao = 0; posicao < segredos.lenght; posicao++)

É segredo.length e não lenght. E o outro nessa linha:

if(input.value == segredos[i])

segredos[i] na verdade é segredos[posicao] que é a variável que você passou no for.

Tenta ai, se não resolver posta aqui!

solução!

Qual navegador você está usando? Testei no Firefox (v 52.0) e no Google Chrome (v 57.0) e o código funcionou como deveria funcionar. Sempre será exibido um erro ao clicar no botão, pois no seu incremento você esta passando a variávei i como indice do array segredos e não a variável posicao definida no loop.

Além disso tem um erro de grafia para palavra em string.lenght, o correto seria length

Fiz as mudanças sugeridas, porém ainda ocorre o mesmo erro. Como se o código meio que ignorasse a função verifica e para mim aparece somente a mensagem de acerto.

Eu estou usando o Chrome versão 56.0.2924.87. Vou testar em outro navegador!

Felipe testei em dois browsers e em nenhum deles aconteceu o que você disse, uma solução para isso era atribuir ao próprio button

<button onclick="verifica()"> 
</button>

Mas novamente reforço não foi necessário fazer isso no firefox 52.0.1 (64-bit) e no google chrome Version 57.0.2987.110 (64-bit)

Bom, testei no Firefox e deu certo. Abri novamente no Chrome e deu certo. Porém quando eu recarreguei a pagina que já estava aberta e continuava dando o mesmo erro. Acho que salvou algum cache ou algo parecido e recarregava uma versão errada do código. Obrigado a todos pela a ajuda!