Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Validação Peso e Altura no tdPeso e tdAltura

Oi pessoal, estou tendo testar a validação de peso e altura indicando no próprio campo de altura e peso caso não esteja dentro do range desejado. Mas ao executar o código abaixo, ele não retorna a mensagem de código inválido, mesmo se eu alterar no html algum valor que seja falso. Onde errei?


var tituloPagina = document.querySelector(".titulo");
tituloPagina.textContent = "Aparecida Nutricionista";

var PrimeiroPaciente = document.querySelector("#primeiro-paciente");
var tdPeso = PrimeiroPaciente.querySelector(".info-peso");
var peso = tdPeso.textContent;
var tdAltura = PrimeiroPaciente.querySelector(".info-altura");
var altura = tdAltura.textContent;
var imc = peso / (altura * altura);

//Validando o IMC

pesoEhValido = true;
alturaEhValida = true;

if(peso <= 0 || peso >= 1000) {
    console.log("PI")
    peso.textContent = "Peso inválido!";
    pesoEhValido = false;
}

if(altura <= 0 || altura >= 3) {
    altura.textContent = "Altura Inválida!";
    alturaEhValida = false;
}

if(alturaEhValida && pesoEhValido) {
    var imcPrimeiroPaciente = tdPrimeiroPaciente.querySelector(".info-imc");
    imcPrimeiroPaciente.textContent = imc;
}
2 respostas
solução!

Opa amigo, veja se a info abaixo procede: Na hora de alterar o conteúdo do td para inválido, vc deve usar o tdPeso/tdAltura e não o conteúdo, no caso textContent.

pesoValido = false
tdPeso.textContent = "Peso inválido"

Pois nesse caso, tanto a var "peso" como a var "altura", são somente os valores dentro do td, e não o campo em que vc pode alterá-lo com o textContent.

Uma dica valiosa: NUNCA use var. Sempre use const ou let, vai depender necessidade.

Artigo do Alura que fala um pouco sobre isso: https://www.alura.com.br/artigos/entenda-diferenca-entre-var-let-e-const-no-javascript