form.js
var btn_adicionar = document.querySelector("#adicionar-paciente");
btn_adicionar.addEventListener("click", function () {
event.preventDefault(); /* Previne o comportamento padrão do evento; */
//console.log("Fui cliclado!");
var form = document.querySelector("#form-adicionar");
var paciente = obterPaciente(form);
var pacienteTr = criarTr(paciente);
if (!validarPaciente(paciente)) {
console.log("Paciente inválido!");
return;
}
var tabela = document.querySelector("#tabela-pacientes");
tabela.appendChild(paciente_tr);
form.reset();
});
//Obtém as informações do paciente - Form;
function obterPaciente(form) {
var paciente = {
nome: form.nome.value,
peso: form.peso.value,
altura: form.altura.value,
gordura: form.gordura.value,
imc: calcularImc(form.peso.value, form.altura.value)
}
return paciente;
}
//Criar/Adicionar o paciente a tabela;
function criarTr(paciente) {
var paciente_tr = document.createElement("tr");
paciente_tr.classList.add("paciente");
paciente_tr.appendChild(criarTd(paciente.nome, "info-nome"));
paciente_tr.appendChild(criarTd(paciente.peso, "info-peso"));
paciente_tr.appendChild(criarTd(paciente.altura, "info-altura"));
paciente_tr.appendChild(criarTd(paciente.gordura, "info-gordura"));
paciente_tr.appendChild(criarTd(paciente.imc, "info-imc"));
return paciente_tr;
}
function criarTd(dado, classe) {
var td = document.createElement("td");
td.textContent = dado;
td.classList.add(classe);
return td;
}
function validarPaciente(paciente) {
if (validarPeso(paciente.peso)) {
return true;
} else {
return false;
}
}
imc.js
var pacientes = document.querySelectorAll(".paciente");
for (var i = 0; i < pacientes.length; i++) {
//console.log(pacientes[i].textContent);
var paciente = pacientes[i];
var peso_paciente = paciente.querySelector(".info-peso");
var peso = peso_paciente.textContent;
var altura_paciente = paciente.querySelector(".info-altura");
var altura = altura_paciente.textContent;
var imc_paciente = paciente.querySelector(".info-imc");
var imc = imc_paciente.textContent;
var peso_valido = validarPeso(peso);
var altura_valida = validarAltura(altura);
if (!peso_valido) {
//console.log('Peso inválido!');
peso_valido = false;
imc_paciente.textContent = "Peso inválido!";
paciente.classList.add("campo-invalido");
}
if (!altura_valida) {
//console.log('Altura inválida!');
altura_valida = false;
imc_paciente.textContent = "Altura inválida!";
paciente.classList.add("campo-invalido");
}
if (peso_valido && altura_valida) {
var imc = calcularImc(peso, altura);
imc_paciente.textContent = imc;
}
}
function calcularImc(peso, altura) {
var imc = 0;
imc = peso / (altura * altura);
return imc.toFixed(2);
};
function validarPeso(peso) {
if (peso >= 0 && peso < 1000) {
return true;
} else {
return false;
}
}
function validarAltura(altura) {
if (altura >= 0 && altura <= 3.0) {
return true;
} else {
return false;
}
}
Erro no console: Uncaught ReferenceError: paciente_tr is not defined at HTMLButtonElement. (form.js:17)
O trecho de código abaixo não funciona após o if, apenas quando inserido na function criarTr(paciente).
var tabela = document.querySelector("#tabela-pacientes");
tabela.appendChild(paciente_tr);