1
resposta

Não imprime no HTML, onde errei amigos?

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

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

        //extraindo informações do paciente do form
        var paciente = obtemPacienteDoFormulario(form);

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



        var erros = validaPaciente(paciente);
         console.log(erros);
        if(erros.length > 0 ){
            exibeMensagensDeErro(erros);
            return;
        }

        // adcionando o paciente na tabela
        var tabela = document.querySelector("#tabela-pacientes");

        tabela.appendChild(pacienteTr);

        form.reset();
    });


    function exibeMensagensDeErro(erros){
        var ul = document.querySelector("#mensagens-erro");
        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-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;
    }

    function validaPaciente(paciente){

        var erros = [];

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

        if(!validaPeso(paciente.peso)) {
                erros.push("Peso invalido!");
        }

        if (!validaAltura(paciente.altura)) {
             erros.push("Altura invalido!");
        }

        if ( paciente.gordura.lenght == 0 ){
            erros.push("A gordura do meu paciente não pode ser em branco!");
        }

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

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

        return erros;
    }
1 resposta

Olá Anderson,

Estava vendo seu código, reparei que no método

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;
    }

Ocorre uma chamada para o método calculaImc(form.peso.value, form.altura.value) porém não encontrei esse método no seu código, acredito que resolvendo essa parte ele deverá funcionar.

Abs