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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software