Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

calcula-imc.js:20 Uncaught ReferenceError: validaPeso is not defined

Seguindo todos os passos do nosso querido instrutor criei as funções validaPeso e validaAltura no arquivo form.js e como orientado fizemos referência as essas funções no arquivo calcula-imc.js . Só que no vídeo dele funciona perfeitamente. Vi respostas aqui falando de "import/export" que em momento algum é citado pelo instrutor. Como se resolve isto? vi aqui um monte de questionamento e nenhuma resposta assertiva por parte da alura aqui no forum

// arquivo form.js
function validaPeso(peso){

    if (peso >= 0 && peso <= 1000) {
        return true;
    } else {
        return false;
    }
}

function validaAltura(altura) {

    if (altura >= 0 && altura <= 3.0) {
        return true;
    } else {
        return false;
    }
}

// arquivo calcula-imc.js
    var pesoOk   = validaPeso(peso);
    var alturaOk = validaAltura(altura);


    if (!pesoOk) {
        tdImc.textContent = "Peso inválido!";
        pesoOk = false;
        //paciente.style.color = "red";
         paciente.classList.add("paciente-invalido");
    }

    if (!alturaOk) {
        tdImc.textContent = "Altura inválida!";
        alturaOk = false;
        //paciente.style.color = "red";
        //paciente.style.backgroundColor = "lightcoral";
        paciente.classList.add("paciente-invalido");
    }
5 respostas
solução!

Fala ai Luiz, tudo bem? O arquivo form.js precisa ser importado antes do calcula-imc.js na página, caso ele seja importado depois, durante a leitura e interpretação do calcula-imc.js a função validaPeso ainda não vai existir.

Espero ter ajudado.

Olá Matheus eu consegui resolver alterando a ordem da declaração do scripts no arquivo index.html ficando assim :

//index.html (meu código alterado)
<script src="js/form.js" ></script>
<script src="js/calcula-imc.js" ></script>
<script src="js/remove-paciente.js" ></script>

//index.html(do instrutor)
<script src="js/calcula-imc.js" ></script>
<script src="js/form.js" ></script>
<script src="js/remove-paciente.js" ></script>

o legal era isso ser citado no curso (uma atualização) visto que isto foi o problema de muitos aqui no fórum e o que eu estranho é que no código index.html do instrutor funciona. acho que poderia ser feito um pequeno ajuste neste ponto. será posto isto na avaliação final do curso.obrigado

Boa Luiz, fico feliz que resolveu o problema.

Sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.

Obrigado Matheus

Magina Luiz.

Abraços e bons estudos.