1
respuesta

Lo hecho en clase

codigo de form:

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

botonPaciente.addEventListener("click", function(event){

    event.preventDefault();
    var form = document.querySelector("#form-adicionar");
    var paciente = capturarDatosPaciente(form);
    var pacienteTr = construirTr(paciente);

    var errores = validarPaciente(paciente);

    if(errores.length > 0){

        exhibirMensajesError(errores);
        return;
    }

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

    var mesajesError = document.querySelector("#mensaje-errores");
    mensajesError.innerHTML = "";

});
//captura los datos del formulario
    function capturarDatosPaciente(form){

        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) {

        //crea td´s y un tr
        var pacienteTr = document.createElement("tr")
        pacienteTr.classList.add("paciente");

        var nombreTd = construirTd(paciente.nombre,"info-nombre");
        var pesoTd = construirTd(paciente.peso,"info-peso");
        var alturaTd = construirTd(paciente.altura,"info-altura");
        var gorduraTd = construirTd(paciente.gordura,"info-gordura");
        var imcTd = construirTd(paciente.imc,"info-imc");

        //asigna al tr los td´s
        pacienteTr.appendChild(nombreTd);
        pacienteTr.appendChild(pesoTd); 
        pacienteTr.appendChild(alturaTd); 
        pacienteTr.appendChild(gorduraTd);
        pacienteTr.appendChild(imcTd);

        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(paciente.nombre.length == 0){            
            errores.push("El nombre no puede estar vacio");
        }
        if(paciente.peso.length == 0){            
            errores.push("El peso no puede estar vacio");
        }
        if(paciente.altura.length == 0){            
            errores.push("La altura no puede estar vacia");
        }
        if(paciente.gordura.length == 0){            
            errores.push("El % de gordura no puede estar vacio");
        }
        if(!validarPeso(paciente.peso)){            
            errores.push("Peso incorrecto");
        }
        if(!validarAltura(paciente.altura)){
            errores.push("Altura incorrecta")
        }
        return errores;
    }

    function exhibirMensajesError(errores){

        var ul = document.querySelector("#mensaje-errores");
        ul.innerHTML = "";
        errores.forEach(function(error){

            var li = document.createElement("li");
            li.textContent = error;
            ul.appendChild(li);
        });

    }

codigo de calcular-imc.js

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 pesoValido = validarPeso(peso);
    var alturaValida = validarAltura(altura);

    if(!pesoValido){
        tdImc.textContent ="Peso incorrecto";
        pesoValido = false;
        Paciente.classList.add("paciente-incorrecto");
    }
    if(!alturaValida){
        tdImc.textContent ="Altura incorrecta";
        alturaValida = false;
        Paciente.classList.add("paciente-incorrecto");
    }
    if(pesoValido && alturaValida){        
        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 < 900){
        return true;
    }else{
        return false;
    }
}
function validarAltura(Altura){

    if(Altura >= 0 && Altura < 3){
        return true;
    }else{
        return false;
    }
}
1 respuesta

Hola André , espero que esté bien.

Gracias por compartir tu código con nosotros, contínua con tu estudos :)

Si tienes alguna pregunta sobre el contenido de los cursos, estaremos aquí para ayudarte.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios