Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

Array if con 6 errores

Hola! Como estan? En mi generacion del console.log(errores) me esta tomando el error del peso y la altura, ademas de los campos de los 4 errores por falta de datos. Como puedo solucionar esto?

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

4 respuestas

Hola Nestor, espero que esté bien.

Te pido que añadas tu código aquí en el tópico para que podamos ayudarte más fácilmente.

Puedes hacerlo clicando en este botón y colocando tu código entre los acentos:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

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

Hola Thiago! Todo bien por suerte, espero vos tambien. A continuación el codigo JavaScript del formulario. Es pero que sirva para salir de la duda.

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

    var errores = validarPaciente(paciente);
    console.log(errores);

    if(errores.length > 0){
        exhibirMensajesErrores(errores);
        return;
    }
    adicionarPacienteEnLaTabla(paciente);
    form.reset();
    var mensajeErrores = document.querySelector("#mensaje-errores");
    mensajeErrores.innerHTML = "";
});

function adicionarPacienteEnLaTabla(paciente){
    var pacienteTr = construirTr(paciente);
    var tabla = document.querySelector("#tabla-pacientes");
    tabla.appendChild(pacienteTr);
}


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

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

    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(paciente.nombre.length == 0){
        errores.push("Error falta nombre, Indique su nombre en el campo.");
    }

    if(paciente.peso.length == 0){
        errores.push("Error falta peso, Indique su peso en el campo.");
    }

    if(paciente.altura.length == 0){
        errores.push("Error falta altura, Indique su altura en el campo.");
    }

    if(paciente.gordura.length == 0){
        errores.push("Error falta %gordura, Indique su %gordura en el campo.");
    }

    if(!validarPeso(paciente.peso)){
        errores.push("El peso Ingresado es Incorrecto");
    }

    if(!validarAltura(paciente.altura)){
        errores.push("La Altura Ingresada es Incorrecta");
    }
    return errores;
}

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

podrias poner los codigos de validarAltura y validarPeso

solución!

Hola! Se me ocurrió esta solución. Implemente un "else if" en el caso que si se coloca un valor en el peso o en la altura lo tome y de ahí evalué si es correcto. Saludos!

Dejo a continuación la porción de código modificado.

if(paciente.nombre.length == 0){
        errores.push("Error falta nombre, Indique su nombre en el campo.");
    }

    if(paciente.peso.length == 0){
        errores.push("Error falta peso, Indique su peso en el campo.");
    }else if(!validarPeso(paciente.peso)){
        errores.push("El peso Ingresado es Incorrecto");
    }

    if(paciente.altura.length == 0){
        errores.push("Error falta altura, Indique su altura en el campo.");
    }else if(!validarAltura(paciente.altura)){
        errores.push("La Altura Ingresada es Incorrecta");
    }

    if(paciente.gordura.length == 0){
        errores.push("Error falta %gordura, Indique su %gordura en el campo.");
    }
    return errores;
}