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

Não está funcionando

<meta charset=utf8>

<input type="text" id="numero" />
<input type="submit" id="advinhar" value="Compare com o meu segredo" onclick="botaoClicado"/>

<script type="text/javascript">

var segredos = [16,34,37,42,50,58];
var caixadonumero = document.getElementById("numero");
var botaoClicado = function(){
    var achou = false;
        for (var i = 0; i < 6; i = i + 1){
            if (segredos[i] == caixadonumero.value){
            achou = true;
            break;
        }
    }
    if (achou == true){
    alert("Parabéns você acertou!!!!");
    }
        else {
            alert ("Infelizmente você errou!!");
        };
    };

</script>
1 resposta
solução!

Olá, Pedro. Tudo bem?

Quando você guarda uma função anônima dentro de uma variável é preciso "chamar" essa função no evento do onclick.

Dessa maneira o nome da varíavel precisa receber o (), como um sinal para que a função guardada dentro da variável botaoClicado seja executada no clique do botão, quando estamos falando do mundo HTML, fora das tags <script>.

Assim, se você alterar o seu código do botão para:

<input type="submit" id="advinhar" value="Compare com o meu segredo" onclick="botaoClicado();"/>

tudo deve ocorrer normalmente.

Caso você estivesse carregando a função entre as tags <script> não seria necessário chamar a execução dessa função através do (), ficando a chamada dessa forma:

var botao = document.querySelector("#advinha");
(...)
botao.onclick=botaoClicado;

Espero ter ajudado!