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

Exemplos da aula Arrays: trabalhe com muitos dados

Boa tarde estou fazendo os exemplos da aula acima citada, mas ao rodar o código não consigo obter nenhum resutaldo ao clicar no botão, abaixo segue o código:

<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 caixaDoNumero = document.getElementById("numero");

    var botaoClicado = function(){
        for (var i = 0; i < segredos.length; i = i + 1) {
            if(segredos[i] == caixaDoNumero.value){
                alert("Parabéns, Você acertou o número!!!");
                break;
            }
        }
        alert("Infelizmente você errou!!!");
    };

    var botaoAdivinhar = function(){
        botaoAdivinhar.onClick = botaoClicado;
    }
</script>
7 respostas

Voce deve chamar um evento onClick e passar a sua função botaoAdivinhar na tag input.

Ex:

<input type="submit" onclick="funcao" value="Compare com o meu segredo"/>

Wellington, Boa Noite !

você pode fazer do jeito que o Maycon falou , mas com essa sintaxe :

<button id="btn" onclick="botaoClicado();">Clique aqui</button>

que irá dar certo também , mas o jeito que você fez é necessário corrigir o seguinte trecho de código .

var botaoAdivinhar = function(){
        botaoAdivinhar.onClick = botaoClicado;
    }

para :

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

que também irá dar certo .

outra coisa , repare que seu código sempre irá imprimir no final Infelizmente você errou!!!

pois você deixou para imprimir sempre arrume isso em seu código também .

Espero ter ajudado, Bons Estudos

Bom dia Celso, estou seguindo o exemplo da Arrays: trabalhe com muitos dados e realmente na última linha eu acabei colando uma função em vez de declarar a variável recebendo:

document.getElementById("adivinhar");

Quanto a imprimir Infelizmente você errou!!! está desta forma na explicação. O alert vem logo após o fechamento do for, logo não entendi.

Mas mesmo fazendo as alterações não consegui obter o resultado esperado. Já olhei várias vezes o código e não consegui achar o erro, não tenho muita experiência nisso ainda. Segue abaixo o código corrigido, pela minha compreensão do que foi explicado:


<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 caixaDoNumero = document.getElementById("numero");

    var botaoClicado = function() {
        for (var i = 0; i < segredos.length; i = i + 1) {
            if(segredos[i] == caixaDoNumero.value){
                alert("Parabéns, Você acertou o número!!!");
                break;
            } else {
                alert("Infelizmente você errou!!!");
            }
        }
    }

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

</script>

Bom dia Celso, estou seguindo o exemplo da Arrays: trabalhe com muitos dados e realmente na última linha eu acabei colando uma função em vez de declarar a variável recebendo:

document.getElementById("adivinhar");

Quanto a imprimir Infelizmente você errou!!! está desta forma na explicação. O alert vem logo após o fechamento do for, logo não entendi.

Mas mesmo fazendo as alterações não consegui obter o resultado esperado. Já olhei várias vezes o código e não consegui achar o erro, não tenho muita experiência nisso ainda. Segue abaixo o código corrigido, pela minha compreensão do que foi explicado:

Código: ´´´

´´´

<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 caixaDoNumero = document.getElementById("numero");

    var botaoClicado = function() {
        for (var i = 0; i < segredos.length; i = i + 1) {
            if(segredos[i] == caixaDoNumero.value){
                alert("Parabéns, Você acertou o número!!!");
                break;
            } else {
                alert("Infelizmente você errou!!!");
            }
        }
    }

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

</script>
solução!

Agora deu certo. Após analisar o código milhares de vezes, vi que na linha <input type="submit" id"adivinhar" value="Compare com o meu segredo"/> estava faltando eu colocar o sinal de " = " para o id adivinhar por isso não estava acionando o evento onclick, corrindo isso o código rodou normalmente.

Com isso aprendi que devemos ter persistência no que estamos fazendo e queremos. Obrigado pessoal.