Olá estou em dúvida no seguinte: Na hora de validar a altura do meu formulário ele está me retornando sempre "altura é inválida" quando não era pra ser, não consigo encontrar onde está o erro.
----- Código calcula imc -----
let pacientes = document.querySelectorAll(".paciente");
for(let i = 0; i < pacientes.length; i++){
let paciente = pacientes[i]
let tdPeso = paciente.querySelector(".info-peso");
let peso = tdPeso.textContent;
let tdAltura = paciente.querySelector(".info-altura")
let altura = tdAltura.textContent;
let tdImc = paciente.querySelector(".info-imc")
let pesoValido = validaPeso(peso);
let alturaValida = validaAltura(altura);
if(!pesoValido){
console.log("Peso inválido");
pesoValido = false;
tdImc.textContent = "Peso inválido";
paciente.classList.add("paciente-invalido");
}
if(!alturaValida) {
console.log("Altura inválida");
alturaValida = false;
tdAltura.textContent = "Altura inválida";
paciente.classList.add("paciente-invalido");
}
if(pesoValido && alturaValida) {
let imc = calculaImc(peso, altura);
tdImc.textContent = imc;
}
function calculaImc(peso, altura) {
let imc = peso / (altura * altura);
return Math.round(imc);
}
}
function validaPeso(peso) {
if(peso >= 0 && peso <= 1000) {
return true;
} else {
return false;
}
}
function validaAltura(altura) {
if(altura >= 0 && altura <= 3.0) {
return true;
} else {
return false;
}
}
----------- Código form.js ------------
let botaoAdicionar = document.querySelector("#adicionar-paciente"); botaoAdicionar.addEventListener("click", function (event) { event.preventDefault()
let form = document.querySelector("#form-adiciona");
let paciente = obtemPacienteDoFormulario(form);
let pacienteTr = montaTr(paciente);
let erros = validaPaciente(paciente);
console.log(erros);
if(erros.length > 0) {
exibeMensagensDeErro(erros);
return;
}
let tabela = document.querySelector("#tabela-pacientes");
tabela.appendChild(pacienteTr);
form.reset();
});
function exibeMensagensDeErro(erros) { let ul = document.querySelector("#mensagens-erro"); erros.forEach(function(erro){ let li = document.createElement("li"); li.textContent = erro; ul.appendChild(li); }); }
function obtemPacienteDoFormulario(form) {
let paciente = {
nome: form.nome.value,
peso: form.peso.value,
altura: form.peso.value,
gordura: form.gordura.value,
imc: calculaImc(form.peso.value, form.altura.value)
}
return paciente;
}
function montaTr(paciente) { let 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) { let td = document.createElement("td"); td.textContent = dado; td.classList.add(classe);
return td;
}
function validaPaciente(paciente) {
let erros = [];
if(!validaPeso(paciente.peso)) {
erros.push("Peso é inválido");
}
if(!validaAltura(paciente.altura)) {
erros.push("Altura é inválida");
}
return erros;
}