Boa noite,
Os novos pacientes não estão sendo filtrados.
Analisei o código para adicionar pacientes (form.js), e a class "info-nome" está sendo incluída nos novos pacientes adicionados à tabela.
Seguem os códigos (obs: o código não está ficando inteiro dentro da formatação de código. Clico em inserir código, posiciono o cursor no mesmo lugar onde estava, colo, mas mesmo assim alguns pedaços não ficam na formatação):
filtra.js:
var campoFiltro = document.querySelector("#filtrar-tabela");
campoFiltro.addEventListener ("input", function() { var paciente = document.querySelectorAll(".paciente");
if (this.value.length > 0) {
for (var i = 0; i < pacientes.length; i++) {
var paciente = pacientes[i];
var tdNome = paciente.querySelector(".info-nome");
var nome = tdNome.textContent;
var expressao = new RegExp(this.value, "i");
if (expressao.test(nome)) {
paciente.classList.remove("invisivel");
} else {
paciente.classList.add("invisivel");
}
}
}
else {
for (var i = 0; i < pacientes.length; i++) {
var paciente = pacientes[i];
paciente.classList.remove("invisivel");
}
}
})
form.js:
var botaoAdicionar = document.querySelector("#adicionar-paciente");
botaoAdicionar.addEventListener("click", function(event) { event.preventDefault();
var form = document.querySelector("#form-adiciona");
var paciente = obtemPacienteDoFormulario(form);
if(!validaPaciente(paciente)) {
alert("Paciente inválido");
return;
}
var pacienteTr = montaTr(paciente);
var erros = validaPaciente(paciente);
console.log(erros);
if(erros.length > 0) {
exibeMensagensDeErro(erros);
return;
}
var tabela = document.querySelector("#tabela-pacientes");
tabela.appendChild(pacienteTr);
form.reset();
document.querySelector("#mensagens-erro").innerHTML = ""
});
function obtemPacienteDoFormulario(form) { var paciente = { nome: form.nome.value, peso: form.peso.value, altura: form.altura.value, gordura: form.gordura.value, imc: calculaImc(form.peso.value, form.altura.value) }
return paciente;
}
function montaTd(dado, classe) { var td = document.createElement("td"); td.classList.add(classe); td.textContent = dado; return td; }
function montaTr(paciente) { var pacienteTr = document.createElement("tr"); pacienteTr.classList.add("paciente");
pacienteTr.appendChild(montaTd(paciente.nome, "info-nome"));
pacienteTr.appendChild(montaTd(paciente.peso, "info-peso"));
pacienteTr.appendChild(montaTd(paciente.altura, "info-altura"));
pacienteTr.appendChild(montaTd(paciente.gordura, "info-gordura"));
pacienteTr.appendChild(montaTd(paciente.imc, "info-imc"));
return pacienteTr;
}