Porque este código não funciona?

Caros amigos, alguém saberia informar onde está o erro deste código?

<meta charset="UTF-8">
		
<input type="text" id="numero" />
<input type="submit" id="adivinhar" value="Tente Adivinhar o Número que estou pensando! (Número de 0 a 100)" />
		
<script>
	var segredo = Math.round(Math.random() * 100);;
	var caixaDoNumero = document.getElementById("numero");
	
	function botaoClicado(){
		if(segredo == caixaDoNumero.value){
			alert("Parabéns... Você acertou o numero secreto");
		} else{
			alert("Infelizmente você errou! O número era..." + segredo);
		}
		caixaDoNumero.value="";
	}
var botaoAdivinhar = document.getElementById("adivinhar");
	botaoAdivinhar.onclick = botaoClicado();
	
</script>

Acredito que seja na function(), pois quando mudo o código para este aqui abaixo, funciona!

<meta charset="UTF-8">
		
<input type="text" id="numero" />
<input type="submit" id="adivinhar" value="Tente Adivinhar o Número que estou pensando! (Número de 0 a 100)" />
		
<script>
	var segredo = Math.round(Math.random() * 100);;
	var caixaDoNumero = document.getElementById("numero");
	var botaoClicado = function(){
		if(segredo == caixaDoNumero.value){
			alert("Parabéns... Você acertou o numero secreto");
		} else{
			alert("Infelizmente você errou! O número era..." + segredo);
		}
		caixaDoNumero.value="";
	};
	var botaoAdivinhar = document.getElementById("adivinhar");
	botaoAdivinhar.onclick = botaoClicado;
</script>

Acho que falta escrever o código. :smiley:

Coloquei!!!
Vou copiar e colar novamente!

Caros amigos, alguém saberia informar onde está o erro deste código?

Acredito que seja na function(), pois quando mudo o código para este aqui abaixo, funciona!

Agora eu que não vejo o código!!! :joy:
Não sei o que está acontecendo!

Tente sempre deixar o seu código o mais simples possível.

<html>
<head>
            <meta charset="UTF-8">
</head>
<body>
         <input type="text" id="numero" />
         <input type="button" id="adivinhar" value="teste" onclick="botaoClicado()"/>

<script>
	var segredo = Math.round(Math.random() * 100);;
	var caixaDoNumero = document.getElementById("numero");
	var botaoAdivinhar = document.getElementById("adivinhar");

	function botaoClicado(){
		if(segredo == caixaDoNumero.value){
			alert("Parabéns... Você acertou o numero secreto");
		} else{
			alert("Infelizmente você errou! O número era..." + segredo);
		}
		caixaDoNumero.value="";
	}
</script>
</body>

Valeu, Jonathan… gostei da solução!

Mas você saberia dizer porque que da forma anterior não dá certo?

Opa desculpe,

motivo
botaoAdivinhar.onclick = botaoClicado;

correto:
botaoAdivinhar.onclick = function(){botaoClicado()};

Obrigado, meu amigo!

O código anterior não funcionava porque você estava associando o resultado da chamada de uma função a um evento. Um evento deve ser associado a uma função que será chamada no momento que evento ocorrer, não ao resultado da chamada de uma função (exceto se a chamada a essa função retornar uma outra função).

2 curtidas

Aaaahhhh!!! Entendi… muito obrigado!