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

não esta fucionando a validacao! me ajudee, por favoor

não funciona a validação, quando clico no meu botão adicionar, ele adiciona o paciente com o peso invalido por exemplo e isso não era para acontecer, não consigo resolver de nenhum jeito, não acho o erro, alguém pode me ajudar?? aqui e a parte de calculo do codigo:

var titulo = document.querySelector("h1");
titulo.textContent = "Aparecida Nutricionista";   // aqui foi pra alterar o titulo

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 imcDaLinha = tdImc.textContent;

  var pesoEhValido = validaPeso(peso);
  var alturaEhValida = validaAltura(altura);

  if (!pesoEhValido)  {
    pesoEhValido = false;
    tdImc.textContent = "Peso Inválido";
    paciente.classList.add("paciente-invalido")

  }

  if (!alturaEhValida) {
    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(paciente) {
  if (peso >= 0 &&  peso <= 1000){
  return true;
} else {
  return false;
}

}

function validaAltura(paciente) {
  if(altura >= 0 && altura <= 3.00){
    return true;
}    else {
      return false;
    }
  }



function calculaImc(peso,altura){
var imc = 0;

imc = peso / (altura * altura);

return imc.toFixed(2);

}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!

Oi Ana Luiza! Tudo certo?

Na function validaPeso() e validaAltura() você usou paciente como parâmetro.

print do trecho do código com destaque para o parâmetro paciente usado nas funções validaPeso() e validaAltura()

Enquanto que o parâmetro para cada função é o próprio peso e própria altura que estão sendo testados dentro do if.

Dessa forma:

function validaPeso(peso) {
    if(peso >= 0 && peso <= 1000){
        return true;
    } else {
        return false;
    }
}

function validaAltura(altura) {
    if(altura >= 0 && altura <= 3.00) {
        return true;
    } else {
        return false;
    }
}

deu certooo!!! obrigadaaa, estou desde ontem tentando achar onde errei, e não estava achando o erro.

Imagina! Que bom que deu certo. É assim mesmo, tem umas coisas que passam batidas. Bons estudos pra ti. Tmj!