1
resposta

porque meu código não funciona, apesar de estar tudo no lugar?

só aparece a opção do "else" na interação

Alguém poderia me ajudar a descobrir o porque do código não estar funcionando corretamente? ele supostamente deveria me passar as informações de acordo com as opções na tela. tela com opções de escolha baseado em situações climáticas

<meta charset='UTF-8'>

<h1>Digite uma das opções abaixo para uma previsão do tempo</h1>
<br><br>
<h3>Digite 1 para manhã.</h3>
<br><br>
<h3>Digite 2 para tarde.</h3>
<br><br>
<h3>Digite 3 para noite.</h3>
<br><br>
<input>
<button>previsão</button>

<script>

    var previsaoManha = 1;
    var previsaoTarde = 2;
    var previsaoNoite = 3;

    var texto = document.querySelector("input");
    var botão = document.querySelector("button");

    texto.value ="";
    texto.focus();

    function pulaLinha() {

        document.write("<br><br>");

    }

    function mostra(frase){

        document.write(frase);
        pulaLinha();

    }

    function previsão() {

        if ( texto == previsaoManha ){

             mostra("Não haverá chuva na parte da manhã, pode sair sem medo.");
            return;

        }
        if ( texto == previsaoTarde ){

            mostra("há chances fortes de chuva na parte da tarde, então tome cuidado.");
            return;
        }
        if ( texto == previsaoNoite ){

            mostra("haverá pancadas de chuva na parte da noite.");
            return;
        } else {

            mostra("Não foi digitado uma opção válida.");
            return;
        }

    }
    botão.onclick = previsão;
    texto.value = "";
    texto.focus();
# </script>
1 resposta

Oii André, tudo bem?

Ao fazer var texto = document.querySelector("input");, sua variável texto recebe o próprio nome do elemento, no caso, "input". Para que seu código compare o valor que está no elemento input, em cada comparação, nos ifs, você deve utilizar texto.value ao invés de somente texto. Dessa forma:

<meta charset='UTF-8'>

<h1>Digite uma das opções abaixo para uma previsão do tempo</h1>
<br><br>
<h3>Digite 1 para manhã.</h3>
<br><br>
<h3>Digite 2 para tarde.</h3>
<br><br>
<h3>Digite 3 para noite.</h3>
<br><br>
<input>
<button>previsão</button>

<script>

    var previsaoManha = 1;
    var previsaoTarde = 2;
    var previsaoNoite = 3;

    var texto = document.querySelector("input");

    var botão = document.querySelector("button");

    texto.value ="";
    texto.focus();

    function pulaLinha() {

        document.write("<br><br>");

    }

    function mostra(frase){

        document.write(frase);
        pulaLinha();

    }

    function previsão() {

        if ( texto.value == previsaoManha ){

             mostra("Não haverá chuva na parte da manhã, pode sair sem medo.");
            return;

        }
        if ( texto.value == previsaoTarde ){

            mostra("há chances fortes de chuva na parte da tarde, então tome cuidado.");
            return;
        }
        if ( texto.value == previsaoNoite ){

            mostra("haverá pancadas de chuva na parte da noite.");
            return;
        } else {

            mostra("Não foi digitado uma opção válida.");
            return;
        }

    }
    botão.onclick = previsão;
    texto.value = "";
    texto.focus();
 </script>

Espero ter ajudado! :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!