Porque este código não funciona?

9 respostas Resolvido
Andre_Morais2

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>

9 Respostas

esmiralha

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

Andre_Morais2

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!

Andre_Morais2

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

jonathan.sky

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>
Andre_Morais2

Valeu, Jonathan… gostei da solução!

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

jonathan.sky
Solucao aceita

Opa desculpe,

motivo
botaoAdivinhar.onclick = botaoClicado;

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

Andre_Morais2

Obrigado, meu amigo!

esmiralha

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).

Andre_Morais2

Aaaahhhh!!! Entendi… muito obrigado!

Criado 4 de maio de 2017
Ultima resposta 30 de mai. de 2017
Respostas 9
Participantes 3