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

Linhas em branco, problema com as td's?

Boa noite.

Ao preencher os dados no form e clicar no botão adicionar, se cria uma linha em branco na tabela.

No console não aparece nenhum erro

segue o código :

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

var form = document.querySelector("#form-adiciona");
//extraindo informações do paciente do form
var paciente = obtemPaciente(form);

// cria a tr do paciente
var pacienteTr = montaTr(paciente);

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

tabela.appendChild(pacienteTr);

});

function obtemPaciente(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(){ var pacienteTr = document.createElement("tr");

var nomeTd = document.createElement("td");
var pesoTd = document.createElement("td");
var alturaTd = document.createElement("td");
var gorduraTd = document.createElement("td");
var imcTd = document.createElement("td");

nomeTd.textContent = paciente.nome;
pesoTd.textContent = paciente.peso;
alturaTd.textContent = paciente.altura;
gorduraTd.textContent = paciente.gordura;
imcTd.textContent = paciente.imc;

pacienteTr.appendChild(nomeTd);
pacienteTr.appendChild(pesoTd);
pacienteTr.appendChild(alturaTd);
pacienteTr.appendChild(gorduraTd);
pacienteTr.appendChild(imcTd);

return pacienteTr;

}

Alguém poderia ajudar?

2 respostas
solução!

Olá Bruno, tudo bem?

Depois de um tempo testando consegui encontrar onde está o erro.

Foi algo bem sutil, você apenas esqueceu de passar para a função montaTr() o parâmetro paciente.

Acontece que quando a função é executada, paciente.nome, paciente.peso, paciente.altura, paciente.gordura e paciente.imc não recebe nenhum parâmetro e nome, peso, altura, gordura e imc retornam como undefined.

O único ajuste que você precisa fazer é aqui:

function montaTr(paciente){ 
    // seu código
}

Espero ter ajudado, forte abraço!

Matheus, muito obrigado pela resposta!

Procurei muito qual era o erro no código e principalmente pelo console não apontar nenhum erro, não consegui identificar.

Agradeço pela atenção!

Valeu