1
respuesta

Todo funciona, pero si le doy a adicionar en la web me tira el error de altura incorrecta.

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");


    pesoEsValido = validarPeso(peso);
    alturaEsValida = validarAltura(altura);

    if(!pesoEsValido){
        console.log("Peso incorrecto");
        tdIMC.textContent = "Peso incorrecto";
        pesoEsValido = false;
        paciente.classList.add("paciente-incorrecto");
    }

    if(!alturaEsValida){
        console.log("Altura incorrecta");
        tdIMC.textContent = "Altura incorrecta";
        alturaEsValida = false;
        paciente.classList.add("paciente-incorrecto");
    }

    if(pesoEsValido && alturaEsValida){
        tdIMC.textContent = calcularIMC(peso,altura);
    }

}

function calcularIMC(peso,altura){
    var 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.00){
        return true
     }else{
        return false
     }

}

form.js

var botonAdicionar = document.querySelector("#adicionar-paciente");

botonAdicionar.addEventListener("click",function(event){
    event.preventDefault();

    var form = document.querySelector("#form-adicionar");
    var paciente = capturarDatosPaciente(form);
    var pacienteTr = construirTr(paciente);
    //Validar paciente
    var errores = validarPaciente(paciente);
    console.log(errores);
    if(errores.length > 0){
       exhibirMensajesErrores(errores);
        return;
    }


    var tabla = document.querySelector("#tabla-pacientes");
    tabla.appendChild(pacienteTr);
    form.reset();

});

function capturarDatosPaciente(form){

    //capturando los datos del formulario
    var paciente = {

        nombre: form.nombre.value,
        peso: form.peso.value,
        altura: form.altura.value,
        gordura: form.gordura.value,
        imc: calcularIMC(form.peso.value,form.altura.value)
    }

    return paciente;
}

function construirTr(paciente){
        //crear los tds y un tr

    var pacienteTr = document.createElement("tr"); 
    pacienteTr.classList.add("paciente");

    //asignacion al tr de los td, y la tabla el tr

    pacienteTr.appendChild(construirTd(paciente.nombre,"info-nombre"));
    pacienteTr.appendChild(construirTd(paciente.peso,"info-peso"));
    pacienteTr.appendChild(construirTd(paciente.altura,"info-altura"));
    pacienteTr.appendChild(construirTd(paciente.gordura,"info-gordura"));
    pacienteTr.appendChild(construirTd(paciente.imc,"info-imc"));

    return pacienteTr;

}

function construirTd(dato,clase){
    var td = document.createElement("td");
    td.classList.add(clase);
    td.textContent = dato;


    return  td;
}

function validarPaciente(paciente){
    var errores = []
    if(!validarPeso(paciente.peso)){
        errores.push("El peso es incorrecto")
    }

     if(!validarAltura(paciente.altura)){
        errores.push("La altura es incorrecta")
     }

    return errores;
}

function exhibirMensajesErrores(errores){
    var ul = document.querySelector("#mensajes-errores");
    errores.forEach(function(error){
        var li = document.createElement("li");
        li.textContent = error;
        ul.appendChild(li);
    });

}
1 respuesta

Hola Hector, espero que estés bien! El error se encuentra en la variable declarada, la forma de llamarla ¡Muchas gracias por su contribución! ¡Para cualquier duda, estoy disponible! ¡Vamos juntos! ¡No desanimes! :)

Si este post te ayudó, por favor, marca como solucionado ✓.