Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio: hora da prática Questão 2, 3 e 4.

pedi pro deepseek me trazer esse HTML de um formulário simples:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulário de Cadastro</title>
</head>
<body>
    <div class="container">
        <h1>Cadastro de Usuário</h1>
        
        <form id="meuFormulario">
            <!-- Campo de Nome -->
            <label for="nome">Nome completo:</label>
            <input type="text" id="nome" name="nome" required>

            <!-- Campo de E-mail -->
            <label for="email">E-mail:</label>
            <input type="email" id="email" name="email" required>

            <!-- Campo de Data de Nascimento -->
            <label for="nascimento">Data de nascimento:</label>
            <input type="date" id="nascimento" name="nascimento">

            <!-- Campo de Senha -->
            <label for="senha">Senha:</label>
            <input type="password" id="senha" name="senha" required>

            <!-- Opções de Gênero (Radio Buttons) -->
            <fieldset>
                <legend>Gênero:</legend>
                <label>
                    <input type="radio" name="genero" value="masculino" required>
                    Masculino
                </label>
                <label>
                    <input type="radio" name="genero" value="feminino">
                    Feminino
                </label>
                <label>
                    <input type="radio" name="genero" value="outro">
                    Outro
                </label>
            </fieldset>

            <!-- Interesses (Checkboxes) -->
            <fieldset>
                <legend>Interesses:</legend>
                <label>
                    <input type="checkbox" name="interesses" value="tecnologia">
                    Tecnologia
                </label>
                <label>
                    <input type="checkbox" name="interesses" value="esportes">
                    Esportes
                </label>
                <label>
                    <input type="checkbox" name="interesses" value="musica">
                    Música
                </label>
            </fieldset>

            <!-- Aceitar Termos -->
            <label>
                <input type="checkbox" id="termos" name="termos" required>
                Aceito os termos e condições
            </label>

            <!-- Botão de Envio -->
            <button onclick="cadastrando ()" type="button" class="botao-form botao-cadastrar">Cadastrar</button>
        </form>

        <p id="paragrafo">* Campos obrigatórios</p>
    </div>
    <script src="script.js"></script>
</body>
</html>

JavaScript

function cadastrando () {
    let nome = document.getElementById ('nome').value;
    console.log (`Nome completo: ${nome}`);

    let email = document.getElementById ('email').value;
    console.log (`Email: ${email}`);

    let data = document.getElementById ('nascimento').value;
    console.log (`Data de nascimento: ${data}`);

    let senha = document.getElementById ('senha').value;
    console.log (`Senha: ${senha}`);

    let genero = document.getElementsByName ('genero');
    let generoEscolhido;
    for (const radio of genero) {
        if (radio.checked) {
            generoEscolhido = radio.value;
            break;
        }
    }
    
    console.log (`Genero: ${generoEscolhido}`);

    let interesse = document.getElementsByName ('interesses');
    let interessesEscolhidos= [];
    for (const checkbox of interesse) {
        if (checkbox.checked){
            interessesEscolhidos.push(checkbox.value);
        }
    }
    
    console.log (`Interesses: ${interessesEscolhidos}`);
    
    let termos = document.getElementById ('termos').value;
    console.log (`A pessoa clicou nos termos? ${termos}`);

//questão-3
    let paragrafo = document.querySelector('p');
    paragrafo.textContent = 'Você preencheu formulário, muito obrigado!'
}
2 respostas

No desafio 4 eu incrementei pedindo pro deepseek gerar um HTML com dois inputs, numero1 e numero2, além disso, exibi o resultado da soma no console e manipulando um paragráfo.

HTML

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Desafio de Soma</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 600px;
            margin: 20px auto;
            padding: 20px;
        }
        input, button {
            padding: 8px;
            margin: 5px;
        }
    </style>
</head>
<body>
    <h1>Desafio de Lógica: Soma de Valores</h1>
    
    <!-- Inputs para os números -->
    <label for="numero1">Número 1:</label>
    <input type="number" id="numero1" placeholder="Digite um número">
    
    <label for="numero2">Número 2:</label>
    <input type="number" id="numero2" placeholder="Digite outro número">

    <br>
    <p id="resultado"></p>

    <!-- Botão chamando a função diretamente -->
    <button onclick="calculando()">Calcular Soma</button>

    <!-- Script com a função a ser implementada por você -->
    <script src="script.js"></script>
</body>
</html>

logica no JS:

function calculando () {
    let nu1 = document.getElementById ('numero1').value;
    let nu2 = document.getElementById ('numero2').value;

    if (nu1 == '' || nu2 == ''){
        alert ('Por favor, insira os dois números positivos necessário pra realizar a soma!');
        return;
    }

    let numero1 = +nu1;
    let numero2 = +nu2;
    
    let resultado = numero1 + numero2;

    
    console.log (`Olá desenvolvedor! O resultado da soma é ${resultado}, parabéns por concluir o desafio!`);
    document.querySelector ('p').textContent = `Olá desenvolvedor! O resultado da soma é ${resultado}, parabéns por concluir o desafio!`
}

Precisei converter as strings em numeros antes de realizar a soma, queria saber se há a possibilidade de converter diretamente no recebimento das varivéis, tentei algo parecido com let numero1 = number(document.getElementById ('numero1').value); mas não deu certo, pesquisando eu vi que usando apenas um + era possivel fazer a conversão.

solução!

Oi, Alexandre! Tudo bem?

Sobre sua última dúvida, o erro acontece porque Number deve ser escrito com N maiúsculo. Veja como corrigir:

let numero1 = Number(document.getElementById('numero1').value);
let numero2 = Number(document.getElementById('numero2').value);

Outra forma simplificada, que você já encontrou, é usar o operador +, que converte a string diretamente para número:

let numero1 = +document.getElementById('numero1').value;
let numero2 = +document.getElementById('numero2').value;

Ambas as opções funcionam corretamente para converter valores de input em números.

Fico à disposição. Abraços e bons estudos!

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