Hice exactamente lo que está en el video, pero me agrega con valores negativos y no me hace la validación como tal.
var botonAdicionar = document.querySelector("#adicionar-paciente");
botonAdicionar.addEventListener("click", function(event) {
event.preventDefault();
var form = document.querySelector("#form-adicionar");
var paciente = capturarDatos(form);
console.log(paciente);
var pacienteTr = construirTr(paciente); //validar paciente
var errores = validaPaciente(paciente);
if (errores.length > 0) { // nega + nega = true no permite calcular el ims
mensajeErroresExhibir(errores);
return;
}
var tabla = document.querySelector("#tabla-pacientes");
tabla.appendChild(pacienteTr);
form.reset(); //resetea los campos
var mensajerErrores = document.querySelector("#mensajes-errores");
mensajerErrores.innerHTML = "";
console.log(errores);
})
//capturando datos de la persona
function capturarDatos(form) {
var paciente = { // creo el objeto
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 td y tr
var pacienteTr = document.createElement("tr");
pacienteTr.classList.add("paciente");
//asignacion del tr de los td y la tabla
pacienteTr.appendChild(construirTd(paciente.nombre, "info-nombre"));
pacienteTr.appendChild(construirTd(paciente.altura, "info-altura"));
pacienteTr.appendChild(construirTd(paciente.peso, "info-peso"));
pacienteTr.appendChild(construirTd(paciente.gordura, "info-gordura"));
pacienteTr.appendChild(construirTd(paciente.imc, "info-imc"));
return pacienteTr;
}
//asignar los valores a la propiedad textcontent
function construirTd(dato, clase) {
var td = document.createElement("td");
td.classList.add(clase);
td.textContent = dato;
return td;
}
function validaPaciente(paciente) {
var errores = [];
if (validaPeso(paciente.nombre.length == 0)) {
return errores.push("el nombre no puede estar vacio ");
}
if (validaPeso(paciente.peso.length == 0)) {
return errores.push("el peso no puede estar vacio ");
}
if (validaPeso(paciente.altura.length == 0)) {
return errores.push("el altura no puede estar vacio ");
}
if (validaPeso(paciente.gordura.length == 0)) {
return errores.push("el gordura no puede estar vacio ");
}
if (validaAltura(paciente.altura)) {
return errores.push("altura incorrecto");
}
if (validaAltura(paciente.altura)) {
return errores.push("altura incorrecto");
}
return errores;
}
function mensajeErroresExhibir(errores) {
var ul = document.querySelector("#mensajes-errores");
ul.innerHTML = ""; //cerrar me la lista
errores.foreach(function(error) {
var li = document.createElement("li");
li.textContent = error;
ul.appendChild(li);
})
}