1
resposta

Meu button.onclick não funciona ao ser o tentar atribui-lo a uma função

O código não exibe erro algum porém não funciona. Quero fazer um gerador de números aleatórios podendo escolher digitar a quantidade de números que podem ser gerados.

<meta charset="UTF-8">

<input/>
<button>sortear</button>

<script>
     var input = document.querySelector("input");

       input.focus();

     var buttton = document.querySelector("button");

     var quantidade = input.value;
    buttton.onclick = sorteiaNumeros;


      function sorteiaNumeros(quantidade) {
        for(var numero= 1; numero <= quantidade; numero++){
            geraNumeros();

    }
    function geraNumeros() {
var numeroSorteado= Math.round(Math.random() * 10);
        document.write(numeroSorteado);
    }


}
</script>
1 resposta

Olá, Gabriel. Tudo bem?

Peço desculpas pela demora em dar um retorno.

O seu button.onclick não funciona porque a função sorteiaNumeros, que está atrelada ao botão, possui o parâmetro quantidade. Quando o button.onclick chama a função, não é passado um valor para esse parâmetro e o loop for não é executado.

Uma solução para esse problema seria não utilizar o parâmetro quantidade, e usar diretamente no seu laço for o próprio input.value. Assim, a função sorteiaNumeros ficará da seguinte maneira:

function sorteiaNumeros() {
    for(var numero = 1; numero <= input.value; numero++) {
        geraNumeros();
    }
}

Desse modo, o seu código funcionará conforme o esperado.

Espero que sua dúvida tenha sido solucionada. Qualquer outra questão estou a disposição.

Abraços. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!