1
resposta

Objeto para caso tivessemos checkbox no formulário

Olá! No código a gente pega os dados do formulário para transformar em um objeto. Como abaixo:

function get_pacient(form) {
    var test = document.getElementById('mood');

    var pacient = {
        name: form.name.value,   
    }

    return pacient;
}

Como eu pegaria os valores de checkbox marcados, para transformar em um objeto, por exemplo?

1 resposta

Olá Noelen, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Podemos coletar os campos do tipo checkbox utilizando a função querySelectorAll em conjunto com os campos checked (marcados) do nosso campo de input. Após isso, basta construirmos o objeto, conforme apresentado no código abaixo.

function coletarCheckboxes() {
            const checkboxes = document.querySelectorAll('input[type="checkbox"]:checked');
            const values = Array.from(checkboxes).map(cb => cb.value);
            const obj = {checkboxes: values};
            console.log(obj);
        }

O código da função coletarCheckboxes, coleta todos os elementos de entrada do tipo checkbox que estão marcados e cria um array com seus valores. Em seguida, ele cria um objeto com o atributo checkboxes recebendo como atribuição o array values. Finalmente, ele imprime o objeto no console. Deixo abaixo um exemplo com a aplicação da função coletarCheckboxes. Quando o botão Enviar for clicado, será criado um objeto com base nos checkboxes marcados.

<!DOCTYPE html>
<html>
<head>
    <title>Checkbox Exemplo</title>
    <script>
        function coletarCheckboxes() {
            const checkboxes = document.querySelectorAll('input[type="checkbox"]:checked');
            const values = Array.from(checkboxes).map(cb => cb.value);
            const obj = {checkboxes: values};
            console.log(obj);
        }
    </script>
</head>
<body>
    <input type="checkbox" name="checkbox1" value="valor1">
    <label for="checkbox1">Valor 1</label><br>
    <input type="checkbox" name="checkbox2" value="valor2">
    <label for="checkbox2">Valor 2</label><br>
    <input type="checkbox" name="checkbox3" value="valor3">
    <label for="checkbox3">Valor 3</label><br>
    <button onclick="coletarCheckboxes()">Enviar</button>
</body>
</html>

Exemplo de Resultado:

{checkboxes: ["valor1", "valor3"] }

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

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