6
respostas

dn.innerHTML = ""; não está funcionando

Prezados,

o innerHTML do meu codigo não está fazendo a funçao dele..quando o coloco ele alem de não fazer sua funçao ele ainda permite que eu insira campo em branco na tabeal...o codigo segue abaixo.

var botaoAdicionar = document.querySelector("#adicionar-paciente");
                      botaoAdicionar.addEventListener("click", function(event) {
                          event.preventDefault();

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

                          var paciente = obtemPacientedoFormulario(form); //2)chamou o objeto paciente
                          //var tabela = document.querySelector("#tabela-pacientes");
                         var pacienteTr = montarTr(paciente); //3)

                         var erros = validaPaciente(paciente);

                         console.log(erros);


                         if(erros.length > 0 ){ //se houver mensagem passo no <span>
                          //var mensagemErro = document.querySelector("#mensagens-erro");
                         // mensagemErro.textContent = erro; //vai chamar a funçao
                            //return;
                            exibeMensagemsDeErro(erros);


                         }



                         var tabela = document.querySelector("#tabela-pacientes"); //4) procula a tabela o id tabela-pacientes

                          tabela.appendChild(pacienteTr); //5) adociona dependencia a eles

                          form.reset(); //limpa os campos pego as mensagens de erro




                                var dn = document.querySelector("#mensagens-erro");
                                dn.innerHTML = "";



                            });  ///é do botao Click





                      function exibeMensagemsDeErro(erros){ //var erros = validaPaciente(paciente);

                        var ul = document.querySelector("#mensagens-erro");
                        ul.innerHTML = ""; //toda vez que chama uma nova ul apaga as anterires
                        erros.forEach(function(erro){ //erro é o item de interaçao do array

                            var li = document.createElement("li"); //vai criar o li
                            li.textContent = erro;
                            ul.appendChild(li);

                        });
                      }


                      function obtemPacientedoFormulario(form){ //passa o formulario pro paciente preencher

                          var paciente = {
                          nome: form.nome.value,
                          peso: form.peso.value,
                          altura: form.altura.value,
                          gordura: form.gordura.value,
                          imc: calcularImc(form.peso.value,form.altura.value) //não colocar virgula no ultimo
                            // body...
                          }

                          return paciente;
                      }





                      function montarTr(paciente){


                       var pacienteTr = document.createElement("tr"); //cria a tr


                        pacienteTr.classList.add("paciente");

                          pacienteTr.appendChild(montarTd(paciente.nome,"info-nome")); //adiciona as tds a tr
                          pacienteTr.appendChild(montarTd(paciente.peso,"info-peso"));
                          pacienteTr.appendChild(montarTd(paciente.altura,"info-altura"));
                          pacienteTr.appendChild(montarTd(paciente.gordura,"info-gordura"));
                          pacienteTr.appendChild(montarTd(paciente.imc,"info-imc"));
                          //Adicionando o paciente na tabela
                          return pacienteTr;


                      }


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

                        return td;


                      }


                      function validaPaciente(paciente){ //chama o validaPeso

                        var erros = []; //erros é uma array de variavel.
                         //se faça
                        if ( paciente.nome.length == 0 ) erros.push("O nome do paciente está em branco");
                        if (!validaPeso(paciente.peso)) erros.push( "O Peso foi invalido");
                        if (!validaPeso(paciente.peso)) erros.push( "O Peso foi invalido");
                        if(paciente.gordura.length == 0) erros.push("A gordura do paciente está em branco");
                        if(paciente.peso.length == 0) erros.push("O Peso do paciente está em branco");
                        if(paciente.altura.length == 0) erros.push("A altura do paciente está em branco");

                        return erros;

                      }
6 respostas

Oi Daniele,

você esta na aula 6 do curso??

eu vi alguns problemas no seu código:

a sua função exibeMensagemsDeErro possui um );} a main no finalzinho dela

function exibeMensagemsDeErro(erros){ //var erros = validaPaciente(paciente);

var ul = document.querySelector("#mensagens-erro"); ul.innerHTML = ""; //toda vez que chama uma nova ul apaga as anterires erros.forEach(function(erro){ //erro é o item de interaçao do array

var li = document.createElement("li"); //vai criar o li li.textContent = erro; ul.appendChild(li);

}); }

o correto é

function exibeMensagemsDeErro(erros){ //var erros = validaPaciente(paciente);

var ul = document.querySelector("#mensagens-erro"); ul.innerHTML = ""; //toda vez que chama uma nova ul apaga as anterires erros.forEach(function(erro){ //erro é o item de interaçao do array

var li = document.createElement("li"); //vai criar o li li.textContent = erro; ul.appendChild(li);

}

Além disso seu código esta chamando uma função chamada calcularImc e no arquivo calcula-imc.js, a função é calculaImc

Além disso, tem mais algumas outras coisas erradas no seu código. O console do js esta retornando para mim alguns erros de digitação, principalmente no nome das funções.

Obrigada! eu vou verificar amanha e te falo...javascript é chato com essas coisas viu....

Olá...então nao vi esse erro não...esse a mais é do click..

var botaoAdicionar = document.querySelector("#adicionar-paciente"); botaoAdicionar.addEventListener("click", function(event) { event.preventDefault(); //pra assim que ele clicka não manter os dados escritos

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

var paciente = obtemPacientedoFormulario(form); //2)chamou o objeto paciente //var tabela = document.querySelector("#tabela-pacientes"); var pacienteTr = montarTr(paciente); //3)

var erros = validaPaciente(paciente);

console.log(erros);

if(erros.length > 0 ){ //se houver mensagem passo no //var mensagemErro = document.querySelector("#mensagens-erro"); // mensagemErro.textContent = erro; //vai chamar a funçao //return; exibeMensagemsDeErro(erros);

}

var tabela = document.querySelector("#tabela-pacientes"); //4) procula a tabela o id tabela-pacientes

tabela.appendChild(pacienteTr); //5) adociona dependencia a eles

form.reset(); //limpa os campos pego as mensagens de erro

var dn = document.querySelector("#mensagens-erro"); dn.innerHTML = "";

}); ///é do botao Click

Oi Daniele

coloque seu código em <> INSERIR CODIGO para ele ficar mais legivel, ok.

seu código aqui

var botaoAdicionar = document.querySelector("#adicionar-paciente"); botaoAdicionar.addEventListener("click", function(event) { event.preventDefault(); //pra assim que ele clicka não manter os dados escritos

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

var paciente = obtemPacientedoFormulario(form); //2)chamou o objeto paciente //var tabela = document.querySelector("#tabela-pacientes"); var pacienteTr = montarTr(paciente); //3)

var erros = validaPaciente(paciente);

console.log(erros);

if(erros.length > 0 ){ //se houver mensagem passo no //var mensagemErro = document.querySelector("#mensagens-erro"); // mensagemErro.textContent = erro; //vai chamar a funçao //return; exibeMensagemsDeErro(erros);

}

var tabela = document.querySelector("#tabela-pacientes"); //4) procula a tabela o id tabela-pacientes

tabela.appendChild(pacienteTr); //5) adociona dependencia a eles

form.reset(); //limpa os campos pego as mensagens de erro

var mensagensErro = document.querySelector("#mensagens-erro"); mensagensErro.innerHTML = "";

}); ///é do botao Click

function exibeMensagemsDeErro(erros){ //var erros = validaPaciente(paciente);

var ul = document.querySelector("#mensagens-erro"); ul.innerHTML = ""; //toda vez que chama uma nova ul apaga as anterires erros.forEach(function(erro){ //erro é o item de interaçao do array

var li = document.createElement("li"); //vai criar o li li.textContent = erro; ul.appendChild(li);

}); }

function obtemPacientedoFormulario(form){ //passa o formulario pro paciente preencher

var paciente = { nome: form.nome.value, peso: form.peso.value, altura: form.altura.value, gordura: form.gordura.value, imc: calcularImc(form.peso.value,form.altura.value) //não colocar virgula no ultimo // body... }

return paciente; }

function montarTr(paciente){

var pacienteTr = document.createElement("tr"); //cria a tr

pacienteTr.classList.add("paciente");

pacienteTr.appendChild(montarTd(paciente.nome,"info-nome")); //adiciona as tds a tr pacienteTr.appendChild(montarTd(paciente.peso,"info-peso")); pacienteTr.appendChild(montarTd(paciente.altura,"info-altura")); pacienteTr.appendChild(montarTd(paciente.gordura,"info-gordura")); pacienteTr.appendChild(montarTd(paciente.imc,"info-imc")); //Adicionando o paciente na tabela return pacienteTr;

}

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

return td;

}

function validaPaciente(paciente){ //chama o validaPeso

var erros = []; //erros é uma array de variavel. //se faça if ( paciente.nome.length == 0 ) erros.push("O nome do paciente está em branco"); if (!validaPeso(paciente.peso)) erros.push( "O Peso foi invalido"); if (!validaPeso(paciente.peso)) erros.push( "O Peso foi invalido"); if(paciente.gordura.length == 0) erros.push("A gordura do paciente está em branco"); if(paciente.peso.length == 0) erros.push("O Peso do paciente está em branco"); if(paciente.altura.length == 0) erros.push("A altura do paciente está em branco");

return erros;

}

Oi Daniele

peloque entendi , você colocou código importante comentado. Tentei abrir aqui no meu editor e vi o trecho abaixo

var pacienteTr = montarTr(paciente);

comentado.

Eu acho que seria uma boa idéia fazer o download do projeto no "Mãos a obra" da aula e refazer a atividade passo-a-passo. É claro, vc pode ficar a vontade para incluir seus comentários mas não comente código, se ele não vai ser mais usado, apague. Isso só confunde. DEixe os comentários para as suas explicações.