Pessoal, dentro do código abaixo:
botao.addEventListener("click", function (event) {
event.preventDefault(); // Limpando configurações padrão do botão;
var erros = [];
let paciente = obtemPacienteFormulario(form);
var erro = validaPaciente(paciente);
if (erro.length > 0) {
console.log(erros);
return;
} else {
let pacienteTr = document.createElement("tr");
let tabelaPacientes = document.querySelector("#tabela-pacientes");
tabelaPacientes.appendChild(pacienteTr);
pacienteTr.appendChild(criaTd(paciente.nome,"info-nome"));
pacienteTr.appendChild(criaTd(paciente.peso,"info-peso"));
pacienteTr.appendChild(criaTd(paciente.altura,"info-altura"));
pacienteTr.appendChild(criaTd(paciente.gordura,"info-gordura"));
pacienteTr.appendChild(criaTd(paciente.imc,"info-imc"));
form.reset();
}
});
E o código da função validaPaciente é:
function validaPaciente (paciente) {
var erros = [];
if(!validaPeso(paciente.peso)) {
erros.push("Peso inválido!");
}
if(!validaAltura(paciente.altura)) {
erros.push("Altura inválida");
}
if(paciente.altura.length == 0) {
erros.push("Altura não pode ficar em branco.")
}
if(paciente.peso.length == 0) {
erros.push("Peso não pode ficar em branco.")
}
if(paciente.nome.length == 0) {
erros.push("Nome não pode ficar em branco.")
}
if(paciente.gordura.length == 0) {
erros.push("Gordura não pode ficar em branco.")
}
console.log(erros);
return erros;
}
Na aula, o professor ensinou a guardarmos o array criado na função validaPaciente dentro da variável "erro" (var erro = validaPaciente(paciente)); Mas eu não entendi a necessidade de guardar isso dentro de uma variável. Pra simplificar, tentei simplesmente chamar a função validaPaciente, que automaticamente traria o array 'erros' no return no final da função. Com esse array retornado, eu colocaria dentro do if e se houve mais de um elemento no array, conseguiria vê-los através do console.log, mas não funcionou, o código aciona o else e adiciona uma linha sem qualquer conteúdo, ignorando o array de erros. Sabem por que isso acontece?