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

Botão não funciona

var botaoAdicionar = document.querySelector("#adicionar-paciente"); botaoAdicionar.addEventListener("click", function(event) { event.preventDefault();

var form = document.querySelector("#form-adiciona");
var paciente = obtemPacienteDoFormulario(form);

var pacienteTr = montaTr(paciente);

var tabela = document.querySelector("#tabela-pacientes");

tabela.appendChild(pacienteTr);

form.reset();

});

function obtemPacienteDoFormulario(form) {

var paciente = {
    nome: form.nome.value,
    peso: form.peso.value,
    altura: form.altura.value,
    gordura: form.gordura.value,
    imc: calculaImc(form.peso.value, form.altura.value)
}
return paciente;

}

function montaTr(paciente) { var pacienteTr = document.createElement("tr"); pacienteTr.classList.add("paciente");

pacienteTr.appendChild(montaTd(paciente.nome, "info-nome"));
pacienteTr.appendChild(montaTd(paciente.peso, "info-peso"))
pacienteTr.appendChild(montaTd(paciente.altura, "info-altura"));
pacienteTr.appendChild(montaTd(paciente.gordura, "info-gordura"));
pacienteTr.appendChild(montaTd(paciente.imc, "info-imc"));

return pacienteTr;

}

function montaTd(dado, classe) {

var td = document.createElement("td");
td.textContent = dado;
td.classList.add(classe);

return td;

}

Depois de desmembrar o código JS em 2 arquivos, quando eu coloco as informações no formulario e mando enviar nada acontece.

No console log aparecem os seguintes erros:

Uncaught TypeError: Cannot read properties of null (reading 'nome') at obtemPacienteDoFormulario (form.js:21) //erro em "nome" no objeto "paciente" na função que obtem o paciente //

at HTMLButtonElement.<anonymous> (form.js:6)
3 respostas
solução!

Fala Lucas, tudo bem? Espero que sim!

Da uma olhada no HTML e verifica se o formulário possui um id="form-adiciona", por favor? Pode ocorrer de não possuir esse id e estamos selecionando um elemento inexistente, assim retornando null para a variável form.

Aguardo o retorno! :D

Fala Mateus, tudo bem por aqui sim amigo.

Era esse mesmo o problema, achei q era alguma coisa no proprio javascript, nem olhei o html rsrs, obrigado pela ajuda!!

Denada Lucas!! Qualquer outro problema pode chamar a gente aqui no fórum, ta bom?

Abraços e bons estudos!!