Jump to content

Meu "if" não funciona....


novodev

Postagens Recomendadas

Olá, pessoal, meu "if" javascript não funciona e não sei o motivo pq parece que o código está correto.

<body>

      <h1>Teste de Nacionalidade</h1>

      Digite país de origem: <input type="text" name="txtpais" id="txtpais">

      <input type="button" value="Verificar" onclick="Nacionalidade()">

     

      <script>

            function Nacionalidade(){

                var txtn = window.document.getElementById('input#txtpais');

                     

                if(txtn == 'Brasil'){

                   txtn.innerHTML = 'Você é brasileiro';

               

                }

            }

               

      </script>

</body>

</html>

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

Olá, @novodev! O problema no seu código JavaScript está na comparação feita dentro do if. O erro ocorre porque você está comparando o objeto txtn com a string "Brasil" usando o operador de igualdade (==).

O objeto txtn representa o elemento de entrada com o ID txtpais. Quando você compara um objeto com uma string usando o operador ==, o JavaScript verifica apenas se as referências dos objetos são iguais. No seu caso, as referências nunca serão iguais, pois txtn sempre será uma nova referência para o elemento de entrada, enquanto "Brasil" é uma referência constante para a string.

Para comparar o valor textual digitado no campo de entrada com "Brasil", você precisa usar o método trim() para remover espaços em branco e o método toLowerCase() para converter o texto para minúsculas antes da comparação. Além disso, é recomendável usar o operador de comparação estrita (===) para garantir que os tipos de dados também sejam iguais.

Possível solução:

 

<body>
  <h1>Teste de Nacionalidade</h1>
  Digite país de origem: <input type="text" name="txtpais" id="txtpais">
  <input type="button" value="Verificar" onclick="Nacionalidade()">

  <script>
    function Nacionalidade(){
      var txtn = window.document.getElementById('txtpais').value.trim().toLowerCase();

      if(txtn === 'brasil'){
        txtn.innerHTML = 'Você é brasileiro';
      }
    }
  </script>
</body>
</html>

 

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...