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

Button IMC não funciona

Olá! Alguém sabe como consertar meu código? O botão IMC deveria mostrar um alerta, mas pelo console vejo que "imc is not defined" sendo que a função está lá.

<meta charset="UTF-8">

<h1>BEM VINDO!</h1>
<body>Este programa é um teste criado por Julio Fallace com a intenção de colocar em prática o conhecimento básico adquirido em JS e HTML pelo <a href="http://www.alura.com.br">Alura</a>.<br>

<br>Por favor, crie sua conta: <button onclick="criarconta()">Criar conta</button></body>

<script>
    var login = "admin";
    var senha = "nimda";
    var login2 = "";
    var senha2 = "";

    function criarconta(){ //Função do botao de criar conta.
        var button1 = document.querySelector("button");
        login = prompt("Cadastre o seu nome de usuário");
        senha = prompt("Cadastre sua senha");
    }

    document.write("<br><br><br>Após criar, faça o login: <button onclick=loginbtn()> Login</button>");

    function loginbtn(){ //Função do botão de login.
        var button2 = document.querySelector("button");
        login2 = prompt("Entre com o seu nome de usuário");
        senha2 = prompt("Entre com a sua senha");

        if(login == login2 && senha == senha2){
            alert("Bem vindo, " + login + "!");

            document.write("<h3>Calcule seu IMC!</h3>");
            document.write("Clique no botão e siga as instruções<br>");
            document.write("<button onclick=imc()> IMC</button>");

            function imc(){
                var button3 = document.querySelector("button");
                alert("Não funciona!");
            }

        }else{
            alert("Usuário ou senha inválidos!");
        }
    }

</script>

Agradeço muito qualquer ajuda

2 respostas
solução!

Boa tarde, Julio! Como vai?

O problema é que a função imc() está dentro da função loginbtn()! Portanto, tire ela de dentro da função loginbtn() e o seu código irá funcionar como esperado!

Qualquer coisa é só falar!

Grande abraço e bons estudos!

Oi Júlio você tinha que declarar a função imc() fora do escopo da função loginbtn().

<meta charset="UTF-8">

<h1>BEM VINDO!</h1>
<body>Este programa é um teste criado por Julio Fallace com a intenção de colocar em prática o conhecimento básico adquirido em JS e HTML pelo <a href="http://www.alura.com.br">Alura</a>.<br>

<br>Por favor, crie sua conta: <button onclick="criarconta()">Criar conta</button></body>

<script>
    var login = "admin";
    var senha = "nimda";
    var login2 = "";
    var senha2 = "";

    function imc(){
                var button3 = document.querySelector("button");
                alert("Não funciona!");
            }

    function criarconta(){ //Função do botao de criar conta.
        var button1 = document.querySelector("button");
        login = prompt("Cadastre o seu nome de usuário");
        senha = prompt("Cadastre sua senha");
    }

    document.write("<br><br><br>Após criar, faça o login: <button onclick=loginbtn()> Login</button>");

    function loginbtn(){ //Função do botão de login.
        var button2 = document.querySelector("button");
        login2 = prompt("Entre com o seu nome de usuário");
        senha2 = prompt("Entre com a sua senha");

        if(login == login2 && senha == senha2){
            alert("Bem vindo, " + login + "!");

            document.write("<h3>Calcule seu IMC!</h3>");
            document.write("Clique no botão e siga as instruções<br>");
            document.write("<button onclick=imc()> IMC</button>");
        }else{
            alert("Usuário ou senha inválidos!");
        }
    }

</script>

Espero ter ajudado e bons estudos.