Quando texto a validação do peso funciona normal, mas o da altura não. Segue o meu calcule-imc.
var pacientes = document.querySelectorAll(".paciente");
for( var i = 0; i < pacientes.length; i++) {
var paciente = pacientes[i];
var tdPeso = paciente.querySelector(".info-peso");
var peso = tdPeso.textContent;
var tdAltura = paciente.querySelector(".info-altura");
var altura = tdAltura.textContent;
var tdImc = paciente.querySelector(".info-imc");
var pesoEhValido = validaPeso(peso);
var alturaEhValida = validaAltura(altura);
if (!pesoEhValido) {
console.log("Peso inválido!");
pesoEhValido = false;
tdImc.textContent = "Peso inválido!";
paciente.classList.add("paciente-invalido");
}
if (!alturaEhValida) {
console.log("Altura inválida!");
alturaEhValida = false;
tdImc.textContent = "Altura inválida!";
paciente.classList.add("paciente-invalido");
}
if(alturaEhValida && pesoEhValido) {
var imc = calculaImc(peso, altura);
tdImc.textContent = 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;
}
}
function calculaImc(peso, altura) {
var imc = 0;
imc = peso / (altura * altura);
return imc.toFixed(2);
}
Eu não consegui achar o erro. Mas percebi que quando eu passo o mouse por cima do paramentro da minha função validaAltura o visual code mostra uma mensagem de correção dizendo que altura é declarado, mas seu valor nunca é lido, mas eu não entendi o que quer dizer.