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

Erro: Uncaught ReferenceError: nomeInput is not defined

Olá! Estava refatorando o código como o professor e estou tendo um erro que não consigo identifica de onde vem (sei a linha, mas não sei porquê está dando este erro.

Ao tentar incluir um paciente na tabela, recebo a reposta

Uncaught ReferenceError: nomeInput is not defined at HTMLButtonElement. (criar-form.js:58)

Entendo que dentro da função, nomeInput está como uma variável local. E ela está sendo chamada posteriormente por outra variável. Não consigo entender como o código do professor não deu o mesmo erro e gostaria de saber como arrumar.

Alguma ideia?

Código abaixo

//pegando um botão no mundo HTML e atrelando uma função e ele


/////////////////////////////////////
////////REFATORANDO O CÓDIGO ////////
/////////////////////////////////////


var botaoAdicionar = document.querySelector("#adicionar-paciente");

botaoAdicionar.addEventListener("click", function(evento){

    evento.preventDefault();

// captando os valores que estão dentro dos inputs, via formulario, usando "value"

/*
    var formulario = document.querySelector("#form-adiciona")
    var nomeInput = formulario.nome.value;
    var pesoInput = formulario.peso.value;
    var alturaInput = formulario.altura.value;
    var gorduraInput = formulario.gordura.value;
*/

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

//CRIANDO OBJETOS//

var paciente = extraiInfosDoForm(formulario);

function extraiInfosDoForm(form){

    var paciente = {
        nomeInput: form.nome.value,
        pesoInput: form.peso.value,
        alturaInput: form.altura.value,
        gorduraInput: form.gordura.value

    }

    return paciente

}

//criando os elementos html tds e a tr 
    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");

// aqui significa que o conteúdo de texto da td criada é igual ao valor do input  

    nomeTd.textContent = nomeInput;
    pesoTd.textContent = pesoInput;
    alturaTd.textContent = alturaInput;
    gorduraTd.textContent = gorduraInput;
    imcTd.textContent = calculaImc(pesoInput, alturaInput);

//colocando as tds como filhos da tr - pacienteTr
    pacienteTr.appendChild(nomeTd);
    pacienteTr.appendChild(pesoTd);
    pacienteTr.appendChild(alturaTd);
    pacienteTr.appendChild(gorduraTd);
    pacienteTr.appendChild(imcTd);

//colocando a tr formada dentro da tabela de pacientes

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

    tabela.appendChild(pacienteTr);



    var paciente = extraiInfosDoForm(formulario);

})
1 resposta
solução!

resolvido