Olá Gabriel tudo bem?
Então, o erro está na declaração da variável (var acerto = false;
) em escopo global, pois, o JavaScript executa apenas uma vez e atribui apenas uma vez esta variável como false na execução,
Quando atribuimos (true
) na função logo que acertamos pela primeira vez não temos o retorno para que a variável (acerto
) se torne (false
) novamente, então sem este retorno ela sempre irá entrar no acertou! por sempre ser (true
),
O que devemos fazer para resolver? atribuir este valor (false
) a variável (acerto
) na execução de nossa função, assim temos a garantia de que sempre iniciamos a função com a variável no valor (false
) como segue,
<!DOCUMENTTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Quiz de Biologia</title>
</head>
<body>
Texto questão 1<br/></br>
1-Resposta</br>
2-Resposta</br>
3-Resposta</br>
4-Resposta</br>
</br>Coloque o número da única alternativa correta abaixo:</br></br>
<input type = "text" id="textoquestao1"/>
<input type = "submit" id="botaoquestao1" value = "Responder"/><br/></br></br>
Texto questão 2<br/></br>
10-Resposta</br>
20-Resposta</br>
30-Resposta</br>
40-Resposta</br>
</br>Coloque o número da única alternativa correta abaixo:</br></br>
<input type = "text" id="textoquestao2"/>
<input type = "submit" id="botaoquestao2" value = "Responder"/><br/></br></br>
Texto questão 3<br/></br>
100-Resposta</br>
200-Resposta</br>
300-Resposta</br>
400-Resposta</br>
</br>Coloque o número da única alternativa correta abaixo:</br></br>
<input type = "text" id="textoquestao3"/>
<input type = "submit" id="botaoquestao3" value = "Responder"/><br/>
</body>
</html>
<script>
var digita = function(frase){
document.write(frase + "<br>");
}
var ativatexto1 = document.getElementById("textoquestao1");
var ativatexto2 = document.getElementById("textoquestao2");
var ativatexto3 = document.getElementById("textoquestao3");
var ativabotao1 = document.getElementById("botaoquestao1");
var ativabotao2 = document.getElementById("botaoquestao2");
var ativabotao3 = document.getElementById("botaoquestao3");
var gabarito = [1,30,400];
var acerto;
var funcionabotao1 = function(){
acerto = false;
for (x = 0; x < gabarito.length; x = x + 1){
if(gabarito[x] == ativatexto1.value){
acerto = true;
break;
}
}
if(acerto == true){
alert("Acertou!!!");
}else{
alert("Você errou =(");
}
}
var funcionabotao2 = function(){
acerto = false;
for (x = 0; x < gabarito.length; x = x + 1){
if(gabarito[x] == ativatexto2.value){
acerto = true;
break;
}
}
if(acerto == true){
alert("Acertou!!!");
}else{
alert("Você errou =(");
}
}
var funcionabotao3 = function(){
acerto = false;
for (x = 0; x < gabarito.length; x = x + 1){
if(gabarito[x] == ativatexto3.value){
acerto = true;
break;
}
}
if(acerto == true){
alert("Acertou!!!");
}else{
alert("Você errou =(");
}
}
ativabotao1.onclick = funcionabotao1;
ativabotao2.onclick = funcionabotao2;
ativabotao3.onclick = funcionabotao3;
</script>
Espero ter ajudado e bons estudos,
Atenciosamente,