Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Acontecendo delay na hora de adiciona rum novo paciente

Dando delay na hora de adicionar um novo paciente é normal isso acontecer? depois que apliquei as novas funçoes da aula 6/3 (Validando o restante dos campos) , quando vou adicionar um novo paciente tenho que clicar varias vezes pra ele entrar na tabela e as mensagens de erro continuam na tela

insira seu código aqui
codigo forms-js
var botaoAdicionar = document.querySelector("#adicionar-paciente");
botaoAdicionar.addEventListener("click", function(event) {
    event.preventDefault();

    var form = document.querySelector("#form-adiciona");

//Extraindo informaçoes do paciente do form

var paciente = obtemPacienteDoFormulario(form);



//cria tr e o td do paciente
var pacienteTr = montaTr(paciente);

var erros = validaPaciente(paciente);


    if (erros.length > 0)
    {
      exibeMensagensDeErro(erros);
      return;
    }



//Adicionando o paciente na tabela
    var tabela = document.querySelector("#tabela-pacientes");

    tabela.appendChild(pacienteTr);
    form.reset();
    var mensagensErro =document.querySelector("#mensagensErro");
    mensagensErro.innerHTML = "";

});

function exibeMensagensDeErro(erros) {
    var ul = document.querySelector("#mensagens-erro");
    ul.innerHTML = "";

    erros.forEach(function(erro) {
        var li = document.createElement("li");
        li.textContent = erro;
        ul.appendChild(li);
    });
}

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 montaTr(paciente) {

  var pacienteTr = document.createElement("tr");
  pacienteTr.classList.add("paciente");
var nomeTd = montaTd(paciente.nome,"info.nome");
  var pesoTd = montaTd(paciente.peso,"info.peso");
  var alturaTd = montaTd(paciente.altura,"info.altura");
  var gorduraTd = montaTd(paciente.gordura,"info.gordura");
  var imcTd = montaTd(paciente.imc,"info.imc");

pacienteTr.appendChild(nomeTd);
pacienteTr.appendChild(pesoTd);
pacienteTr.appendChild(alturaTd);
pacienteTr.appendChild(gorduraTd);
pacienteTr.appendChild(imcTd);

  return pacienteTr;

}

  function montaTd(dado, classe) {
    var td = document.createElement("td");
    td.textContent = dado;
    td.classList.add(classe);

    return td;
}

//Valida usuario valida os campos nome,peso,altura,gordura e imc se o usuario deixar algum campo em branco apresenta uma mensagem de erro vinda do array,
//essa funçao recebe um  objeto paciente e retornará um array de erros:se ela encontra encontre algum erro em alguma propriedade do paciente, adiciona ao array de erros a mensagem que será exibida depois.
function validaPaciente(paciente) {

    var erros = [];

    if (paciente.nome.length == 0) {
        erros.push("O nome não pode ser em branco");
    }

    if (paciente.gordura.length == 0) {
        erros.push("A gordura não pode ser em branco");
    }

    if (paciente.peso.length == 0) {
        erros.push("O peso não pode ser em branco");
    }

    if (paciente.altura.length == 0) {
        erros.push("A altura não pode ser em branco");
    }

    if (!validaPeso(paciente.peso)) {
        erros.push("Peso é inválido");
    }

    if (!validaAltura(paciente.altura)) {
        erros.push("Altura é inválida");
    }

    return erros;
}
1 resposta
solução!

Bom dia, Rennan! Como vai?

Eu vi que vc abriu dois tópicos idênticos! Vou fechar esse aqui para que o pessoal colabore com vc somente pelo outro, ok?

Grande abraço e bons estudos!