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

Dúvida no Ex. 2 da Aula 6 - Arrays: trabalhe com muitos dados

Meus botões não fazem nada. Não sobe nenhum alerta nem nada... onde errei? Peguei o codigo do proprio exercicio o.O

<input type="text" id="numero" /> <input type="submit" id="adivinhar" value="Compare com o meu segredo!"/>

<script>
var segredos = [16,34,37,42,50,58];
var botaoAdivinhar=document.getElementById("adivinhar");
botaoAdivinhar.onclick=botaoClicado;

var caixaDoNumero = document.getElementById("numero");

var botaoClicado = function() {
    var achou = false;
    for(var i = 0; i < segredos.lenght; i = i + 1) {
        if(segredos[i] == caixaDoNumero.value) {
            achou = true;
            break;
        }
    }
    if(achou == true) {
        alert("Parabéns! Você acertou um dos números secretos");
    } else {
      alert("Infelizmente você errou!");
    }
};

</script>
4 respostas

Olá Alexis, fiz algumas alterações e funcionou, compare:

<html>
    <head>
        <title>teste</title>
        <meta charset="utf-8"></meta>
    </head>
    <body>
        <input type="text" id="numero" />
        <input type="submit" id="adivinhar" value="Compare com o meu segredo!"/>
        <script>
            var segredos = [16,34,37,42,50,58];


            var botaoClicado = function(){
            var achou = false;

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

                    if(segredos[i] == caixaDoNumero.value) {
                    achou = true;
                    break;
                    }
                }

                if(achou == true) {
                    alert("Parabéns! Você acertou um dos números secretos");
                } else {
                  alert("Infelizmente você errou!");
                }

            };

            var caixaDoNumero = document.getElementById("numero");
            var botaoAdivinhar = document.getElementById("adivinhar");
            botaoAdivinhar.onclick = botaoClicado;
        </script>
    </body>
</html>

Att,

Ok o negocio do botão voltar a funcionar eu entendi , só que se eu faço apenas a mudança de

var caixaDoNumero = document.getElementById("numero"); var botaoAdivinhar = document.getElementById("adivinhar"); botaoAdivinhar.onclick = botaoClicado;

O botão volta a funcionar mas só me entrega resultados que eu errei e que não acertei.

No seu codigo roda perfeitamente , verifiquei seu codigo e a unica coisa de diferente tirando a parte postada a cima é a edentação , será que isso afetaria o programa , me dando esses erros?

Mesmo codigo do primeiro post.

solução!

Fala Alexis ... blz? A identação é para efeitos de melhor leitura do código e não afeta na sua execução.

Identifiquei dois pontos:

1) Encontrei um erro no for. a palavra length está escrita de forma errada, conforme abaixo:

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

Quando deveria ser:

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

2) Em relação a mudança que fizestes em relação ao código do exemplo, acredito que inicialmente nada acontecia pois no momento em que diz que ação de clicar do botão advinhar deve executar a função botaoClicado, a função "botaoClicado" ainda não existe.

botaoAdivinhar.onclick = botaoClicado;

Depois que fez a mudança e colocou a instrução abaixo após o bloco da função "botaoClicado" passou a funcionar. Abaixo segue versão final com as alterações que comentei, espero ter ajudado:

<meta charset="utf-8">
<input type="text" id="numero" /> 
<input type="submit" id="adivinhar" value="Compare com o meu segredo!"/>

<script>
var segredos = [16,34,37,42,50,58];
var botaoAdivinhar=document.getElementById("adivinhar");
//botaoAdivinhar.onclick=botaoClicado;

var caixaDoNumero = document.getElementById("numero");

var botaoClicado = function() {
    var achou = false;

    for(var i = 0; i < segredos.length; i = i + 1) {
        if(segredos[i] == caixaDoNumero.value) {
            achou = true;
            break;
        }
    }
    if(achou == true) {
        alert("Parabéns! Você acertou um dos números secretos");
    } else {
      alert("Infelizmente você errou!");
    }
};

botaoAdivinhar.onclick=botaoClicado;
</script>

Eu também não estava conseguindo fechar o exercício. Foi só incluir as variáveis antes de fechar o script e tudo deu certo!

var botaoAdivinhar = document.getElementById ("adivinhar"); botaoAdivinhar.onclick = botaoClicado;