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

Erro no console

Não estou conseguindo identificar esse erro. ``` form.js:71 Uncaught ReferenceError: validaPeso is not defined at validaPaciente (form.js:71) at HTMLButtonElement. (form.js:12) 

​ ``

6 respostas

Coloque o código do arquivo form.js para nós analisarmos

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

    //extrai os pacientes do form
    var form = document.querySelector("#form-adiciona");
    var paciente = obtemPacienteDoFormulario(form);

    //cria a tr das ts dos pacientes
    var pacienteTr = montaTr(paciente);

    var erro = validaPaciente(paciente);

   if(erro.length > 0) {
        var mensagemErro = document.querySelector("#mensagem-erro");
        mensagemErro.textContent = erro;
        return;
    }

    // Adiciona paciente na tabela
    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");

    var nomeTd = montaTd(paciente.nome, "info-nome");
    var pesoTd = montaTd(paciente.peso, "info-peso");
    var alturaTd = montaTd(paciente.altura, "info-altura");
    var gorduraTd = montaTd(paciente.gordura, "info-gordura");
    var imcTd = montaTd(paciente.imc, "info-imc");

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

    return pacienteTr;
}


function montaTd(dado, classe) {
    var td = document.createElement("td");
    td.classList.add(classe);
    td.textContent = dado;

    return td;
}


function validaPaciente(paciente) {

    if (validaPeso(paciente.peso)) {
        return "";
    } else {
        return "Peso é inválido";
    }

    if (validaAltura(paciente.altura)) {
        return "";
    } else {
        return "Altura é inválida";
    }

}

Por favor, coloca o código do aquivo onde tem a implementação das funções

validaPeso(paciente.peso)

e

validaAltura.altura(paciente.altura)

código do arquivo "calcula-imc.js"

function ValidaPeso(peso){
    if (peso >= 0 && peso <= 1000) {
        return true;
    }else{
        return false;
    }
}

function validaAltura(altura){
     if (altura >= 0 && altura <= 3.00) {
        return true;
    }else{
        return false;
    }
}
solução!

Acho que o problema é que a função ValidaPeso está declarada com a primeira letra maiúscula. Na chamada existente dentro da função validaPaciente ela está iniciando com minúscula, assim:

if (validaPeso(paciente.peso)).

Só normalizar esse nome, e tudo deve dar certo! ;-)

insira seu código aqui

Obrigado pela respostas!