Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro Uncaught ReferenceError

Estou com o site aparecendo esse erro "Uncaught ReferenceError: pesoTd is not defined at montaTr (form.js:53) at HTMLButtonElement. (form.js:20)"

Como posso resolver?

var botao = document.querySelector('#adicionar-paciente');

botao.addEventListener('click',function () {

    event.preventDefault();

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

    var paciente = extraiInfoForm (form);

    var erros = validaPaciente(paciente);

    if (erros.length > 0) {

        exibeMensagemDeErro(erros)
        var mensagemErro = document.querySelector("#mensagem-erro")
        return
    }

    var pacienteTr = montaTr(paciente);

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

    form.reset();
});

function extraiInfoForm (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 gorduraImc = 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 validaPaciente(paciente) {

    var erros = []

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

    if (!validaPeso(paciente.peso)) {
        erros.push("O peso é inválido!")
    }

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

    if (paciente.gordura.length == 0) {
        erros.push("A gordura do paciente 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;
}

function exibeMensagemDeErro(erros) {
    var ul = document.querySelector("#mensagem-erro");

    ul.innerHTML = ""

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

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

    return td
}
1 resposta
solução!

Fala ai Rhuan, tudo bem? Repare na forma como você criou a variavel que salva o peso: pesotd

Olhe agora como você está utilizando ela: pacienteTr.appendChild (pesoTd).

Repare que o T está minusculo na criação da variavel.

Espero ter ajudado.