2
respostas

Aparece 5 mensagens de erro sobre a tabela e não 4

Quando valido os erros, aparece tanto "Altura é inválida" quanto "A altura não pode ficar em branco"

form.js

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

var paciente = obtemPacienteDoFormulario(form);

var pacienteTr = montaTr(paciente);

var erros = validaPaciente(paciente);

if(erros.length > 0){
    exibeMensagensDeErro(erros);
    return;
}

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

tabela.appendChild(pacienteTr);

form.reset();

});

function exibeMensagensDeErro(erros){ var ul = document.querySelector("#mensagens-erro") ul.innerHTML = "";

erros.forEach(function(erro){
    var li = document.createElement("li");
    li.textContent = erro;
    ul.appendChild(li);
});

}

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-gorduraTd"));
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; }

function validaPaciente(paciente){

var erros = [];

if(paciente.nome.length == 0){
    erros.push("O nome não pode ser em branco!");
}

if(!validaPeso(paciente.peso)){
    erros.push("Peso é Inválido!");
}

if(!validaAltura(paciente.altura)){
    erros.push("Altura é inválida!");
}

if(paciente.gordura.length == 0){
    erros.push("A gordura não pode ficar em branco");
}

if(paciente.peso.length == 0){
    erros.push("O peso não pode ficar em branco")
}

if(paciente.altura.length == 0){
    erros.push("A altura não pode ficar em branco")
}

return erros;

}

2 respostas

Fala Felipe, tudo bem? Espero que sim!

Poderia mandar o projeto completo compactado por favor? Dessa forma vou poder me contextualizar melhor na sua questão e poderei lhe auxiliar da melhor maneira. Você pode enviar tanto por google drive, media fire ou até mesmo github.

Você também pode tentar dar um console.log no nome do paciênte e ver se retorna algo incomum, ou se retorna algum erro no próprio console (para abrir o console basta pressionar F12)

Você também pode verificar se a função verificaAltura está de acordo com a função escrita pelo instrutor

Aguardo o retorno 😉

Eai Matheus, Espero que esteja bem também!

Segue o link com o arquivo compactado.

https://drive.google.com/file/d/1IhfFd6PoL07FVb5C7WhtwgpJO-Fr0Tfd/view?usp=sharing