'''
'''
'''
'''
<meta charset="UTF-8">
<input type="text" id="numero"/>
<input type="submit" id="adicionar" value="Adicione o número ao bingo" onclick="cliqueAdicionar()"/>
<input type="submit" id="visualizar" value="Veja os números do bingo" onclick="mostrarBingo()" />
<script>
var bingo = []
var mostrarBingo = function(){
alert("click!!!")
if(bingo.length == 0){
alert("Você ainda não adicionou nenhum número.")
}else{
mostrarBingo = confirm("Você deseja visualizar agora todos os números do bingo?");
if(mostrarBingo){
var numBingo = "Os números do bingo são:"
for(i = 0; i < bingo.length; i++){
numBingo = numBingo + " " + bingo[i] + ";"
};
};
};
};
var cliqueAdicionar = function(){
var numDig = document.getElementById("numero");
alert("cliquei!!!!");
for(i = 0; i < bingo.length; i++){
alert("for for");
if(bingo[i] == parseInt(numDig.value)){
jaAdd = true
break;
};
};
if(jaAdd){
alert("Este número já foi adicionado, tente outro.")
}else{
bingo.push(numDig)
alert("O " + numDig + " foi adicionado ao bingo.")
};
};
</script>
O erro é porque você precisa declarar a variavel jaAdd antes de utilizá-la. Faça isso antes do seu for na função cliqueAdicionar.
Algumas deficiencias a mais que notei: - na sua função de adicionar vc está mandando exibir no alert o objeto da caixa de texto e não o valor contido nele. - problema análogo ao anterior, você ao adicionar no array está adicionando o objeto e não o valor. - Você monta a string dos números sorteados mas não mostra ao usuário.
segue abaixo o código refatorado para satisfazer tudo anteriormente citado:
<meta charset="UTF-8">
<input type="text" id="numero"/>
<input type="submit" id="adicionar" value="Adicione o número ao bingo" onclick="cliqueAdicionar()"/>
<input type="submit" id="visualizar" value="Veja os números do bingo" onclick="mostrarBingo()" />
<script>
var bingo = [];
var mostrarBingo = function() {
if (bingo.length == 0) {
alert("Você ainda não adicionou nenhum número.")
} else {
mostrarBingo = confirm("Você deseja visualizar agora todos os números do bingo?");
if (mostrarBingo) {
var numBingo = "Os números do bingo são:"
for (i = 0; i < bingo.length; i++) {
numBingo += " " + bingo[i] + ";"
}
alert(numBingo);
}
}
};
var cliqueAdicionar = function() {
var numDig = document.getElementById("numero");
var jaAdd = false;
for(i = 0; i < bingo.length; i++){
if(bingo[i] == parseInt(numDig.value)){
jaAdd = true
break;
}
}
if (jaAdd){
alert("Este número já foi adicionado, tente outro.")
} else {
bingo.push(numDig.value)
alert("O " + numDig.value + " foi adicionado ao bingo.")
}
};
</script>
Obrigado, eu já havia encontrado uma solução para o problema, mas aproveitei para comparar a sua com a minha...
A dúvida foi solucionada?