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

Dúvida no Ex. 1 da Aula 7 - Desafio final

Fala pessoal! Preciso de uma ajuda para fazer este exercício de uma forma um pouco diferente. Eu cheguei a fazer este exercício mas usando o prompt. Agora estou tentando fazer usando formulários input do html. Veja os exemplos abaixo para funcionar o debug:

<meta charset="UTF-8">


<h1>Escolha um número de 1 a 60</h1>

<table>
    <tr>
        <td>Primeiro número</td>
        <td><input size="8" type="text" id="entrada1" /></td>
    </tr>

    <tr>
        <td>Segundo número</td>
        <td><input size="8" type="text" id="entrada2" /></td>
    </tr>

    <tr>
        <td>Terceiro número</td>
        <td><input size="8" type="text" id="entrada3" /></td>
    </tr>

    <tr>
        <td>Quarto número</td>
        <td><input size="8" type="text" id="entrada4" /></td>
    </tr>

    <tr>
        <td>Quinto número</td>
        <td><input size="8" type="text" id="entrada5" /></td>
    </tr>

    <tr>
        <td>Sexto número</td>
        <td><input size="8" type="text" id="entrada6" /></td>
    </tr>

</table>

<input type="submit" value="Enviar" id="enviar" />

<script>
    /////////
    var entrada1 = parseInt(document.getElementById("entrada1"));
    var entrada2 = parseInt(document.getElementById("entrada2"));
    var entrada3 = parseInt(document.getElementById("entrada3"));
    var entrada4 = parseInt(document.getElementById("entrada4"));
    var entrada5 = parseInt(document.getElementById("entrada5"));
    var entrada6 = parseInt(document.getElementById("entrada6"));
    /////////
    var botao = document.getElementById("enviar");
    /////////
    var meusNumeros = [entrada1, entrada2, entrada3, entrada4, entrada5, entrada6];
    var numerosSorteados = [];

    for(var i = 0; i < 6; i++) {
        numerosSorteados[i] = Math.round(Math.random() * 60);
    }

    var eventoClique = function() {
        document.write("Meus números: ");
        for(var i = 0; i < 6; i++) {
            document.write(meusNumeros[i] + ", ");
        }
        document.write("Números sorteados: ");
        for(var i = 0; i < 6; i++) {
            document.write(numerosSorteados[i] + ", ");
        }
    }

    botao.onclick = eventoClique;
</script>

Também tentei fazer de outras formas colocando o .value dentro do vetor e nada.

Alguém poderia me ajudar?

1 resposta
solução!

Oi Thiago, beleza?

Nas suas primeiras linhas do seu script, você está pegando o ELEMENTO input:

 var entrada1 = parseInt(document.getElementById("entrada1"));

Mas você precisa dos inputs, ou do VALOR deles?

Pra pegar o valor, só colocar o .value no final de cada um:

 var entrada1 = parseInt(document.getElementById("entrada1").value);

E esses valores que você pega, você precisa pegar eles quando exatamente?

Do jeito que está, a página carrega, o JS também, e ele já vai lá pegar os valores! Mas será que deu tempo do usuário digitar?

A solução é colocar as entradas e o meusNumeros, dentro da sua função, que é disparada quando o botão é clicado.


E por fim, um ponto-e-vírgula no final da função eventoClique, só por boa prática mesmo.

Espero ter ajudado,

Abcs!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software