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);
if (errores.length > 0){
exhibirMensajesErrores(errores);
return;
}
var tabla = document.querySelector("#tabla-pacientes");
tabla.appendChild(pacienteTr);
form.reset();
var mensajesErrores = document.querySelector("#mensajes-errores");
mensajesErrores.innerHTML = "";
});
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("El nombre no puede estar vacío");
}
if (paciente.peso.length == 0){
errores.push("El peso no puede estar vacío");
}
if (paciente.altura.length == 0){
errores.push("La altura no puede estar vacía");
}
if (paciente.gordura.length == 0){
errores.push("El porcentaje de gordura no puede estar vacío");
}
if (!validarPeso(paciente.peso)){
errores.push("El Peso es Inconrrecto");
}
if (!validarAltura(paciente.altura)){
errores.push("La Altura es Inconrrecta");
}
return errores;
}
function exhibirMensajesErrores(errores){
var ul = document.querySelector("#mensajes-errores")
ul.innerHTML = ""
errores.forEach(function(error){
var li = document.createElement("li")
li.textContent = error;
ul.appendChild(li);
});
}
filtrar.js
var campoFiltro = document.querySelector("#filtrar-tabla");
campoFiltro.addEventListener("input",function(){
var pacientes = document.querySelectorAll(".paciente");
if(this.value.length > 0){
for (var i = 0 ; i < pacientes.length; i++){
var paciente = pacientes[i];
var tdNombre = paciente.querySelector(".info-nombre");
var nombre = tdNombre.textContent;
var expresion = new RegExp(this.value, "i");
if(!expresion.test(nombre)){
paciente.classList.add("invisible");
} else {
paciente.classList.remove("invisible");
}
}
}else{
for (var i = 0 ; i < pacientes.length; i++){
var paciente = pacientes[i];
paciente.classList.remove("invisible");
}
}
});