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

código para de funcionar com parseInt

Pessoal, fiquei quebrando a cabeça do porque o meu código não estar funcionando, sempre mostrava a mensagem "Você errou", mesmo eu colocando um valor que estava na array. Segue resumo do código:

var input = document.querySelector("input");
var button = document.querySelector("button"); 
var chute = parseInt(input.value);

var segredos = [5,7,10,2];

    input.focus();

function verifica() { 

    for (var i=0;i<segredos.length; i++) {

            if (chute == segredos[i]) {

                alert("Uau! Você acertou!");
                break;
            } else {
                alert("Você errou!");
            }
    }

    input.focus();
    input.value = "";

    } 

button.onclick = verifica;

Quando testei tirar a variável chute e colocar direto o input.value, ele funcionou. Alguém sabe me dizer o motivo de não funcionar com o parseInt? Pois para mim não faz sentido, o resultado deveria ser o mesmo.

Segue código funcionando:

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


var segredos = [5,7,10,2];

    input.focus();

function verifica() { 

    for (var i=0;i<segredos.length; i++) {

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

                alert("Uau! Você acertou!");
                break;
            } else {
                alert("Você errou!");
            }
    }

    input.focus();
    input.value = "";

    } 
 button.onclick = verifica;
2 respostas
solução!

Oi Raphael, tudo bem ?

Quando você fez :

var chute = parseInt(input.value);

Ele vai pegar o valor definido naquele instante, ou seja, assim que você estiver importanto o js para o html, que o valor está em branco, logo ele não terá valor.

Você fazendo no escopo do método, ele pegará no instante que você clicar no botão, que nessa hora deve ter valor.

Espero ter ajudado.

Abraços e bons estudos. :D

Entendi, muito obrigado Matheus!