[RESOLVIDO] Problema com condições usando JavaScript

19 respostas Resolvido
programação
makjesus

Atenção Não é trabalho de casa! É treinamento! Não entendo porque a condição está retornado a resposta brasileira mesmo que se digite Brasil alguém pode me ajudar?

Teste Digite o país:
</div>

<script>
    function test(){
        var txtp = window.document.querySelector('input#txtp')

        var pais = window.document.querySelector('div#resp')
       
        if(pais =! 'Brasil'){
            resp.innerHTML += `<p>A pessoa é estrangeira</p>`
            alert('A pessoa é estrangeira!!')
        }else{
            resp.innerHTML += `<p>A pessoa é brasileira!</p>`
            alert('A pessoa é brasileira!!')
        }
    }
</script>

19 Respostas

D

Altera para:

if(pais ==! 'Brasil')

https://www.w3schools.com/js/js_comparisons.asp

darlan_machado

Caramba, de onde saiu esse ==! e esse =!?

Até onde eu sei (e posso estar errado) é:

if(x != 10) {

Ou

if(x !== 100) {
makjesus

FOI ERRO DE DIGITAÇÃO !!! Já foi feita a inversão reporta o a mesma resposta, gentileza executar o treinamento está na mesma agradeço pelo feedback!!!


Document

Saída só reporta brasileira mesmo que se digite no input “Brasil” parece que passa direto na condição if(pais != ‘Brasil’) sei que o erro esta:
if(pais != ‘Brasil’){
resp.innerHTML += <p><i>A pessoa é estrangeira</i></p>
// alert(‘A pessoa é estrangeira!!’)
} else if(pais == ‘Brasil’){
resp.innerHTML += <p><i>A pessoa é brasileira!</i></p>
// alert(‘A pessoa é brasileira!!’)
}

darlan_machado

E o que está sendo lido na variável pais?
Já tentou exibir e ver se é o valor que você espera?

makjesus

Tentei executar pelo prompt do node para efeito de teste ,mas não encontrei o comando que captura e exibe a entrada no prompt do node fiz outros testes como esse está normal:

Sistema de Multas

Velocidade do carro Km/h
</div>
    <script>
    function calcular(){
        var txtv = window.document.querySelector('input#txtvel')
        var vel = window.document.querySelector('div#res')
        var vel = Number(txtv.value)
        res.innerHTML = `A velocidade do carro é <i>    ${vel}</i>`
        if(vel > 60){
            res.innerHTML += `<p><strong>Será multado!!</strong></p>`
        }else{
            res.innerHTML +=`<p><strong>Velocidade permitida!!</strong></p>`
        }
        res.innerHTML +=  `<p> Dirija sempre com cinto de segurança</p>`

        }
        
    
    </script>

E o que está sendo lido na variável pais? Já tentou exibir e ver se é o valor que você espera? Dei um console.log(pais) exibiu nada!!
makjesus

Bota casaco tira casaco…

darlan_machado

Sei lá, acho que você está reinventando a roda.

var pais = document.getElementById('pais').value;
if(pais !== 'Brasil') {
    //Se é diferente
} else {
    //Se é igual
}
makjesus

acho que você está reinventando a roda eu kkk quem derá só quero entender o porquê que não está funcionando vi que vc está utilizando document.getElementById(‘pais’).value e trocou pais !== 'Brasil deixa eu testar aqui…

FearX

Lembre-se que a descrição do problema fica no corpo do tópico, não no título. Isso é básico da internet.

makjesus

Não faz diferenciação na hora quando faz a codificação

makjesus
<script>
    function test(){
        var txtp = document.getElementById('txtp').value

        var pais = 'Brasil'

        if(pais !== 'Brasil'){
            alert('É estrangeira!')
        }
        else{
            alert('É brasileira!')
        }
    }
makjesus
function test(){ var txtp = document.getElementById('txtp').value var pais = 'Brasil' if(pais !== 'Brasil'){ alert('É estrangeira!') } else{ alert('É brasileira!') } }
makjesus
Solucao aceita

Finalmente o problema é se estava usando a var = pais na condição, quando a variável e trocada para o if(txtp !== ‘Brasil’) funcionou!!

makjesus
<script>
        function test(){
            var txtp = document.getElementById('txtp').value
            if(txtp !== 'Brasil'){
                alert('A pessoa é estrangeira!')
               
            }else{
                alert('A pessoa é brasileira!')
             
            }
        }
    
    </script>
darlan_machado

Cara, não faz o menor sentido isso.
Mas, ok;

makjesus

Daquela forma não estava funcionando :

function test(){

var txtp = document.getElementById(txtp).value

var pais = Brasil

if(pais !== Brasil){

alert(A pessoa é estrangeira!)
}else{
            alert('A pessoa é brasileira!')
         
        }
    }
FearX

Mas essa condição só vai cair sempre em “brasileira”, pq vc ta comparando errado, ué

makjesus

Isso que dá as vezes de ficar copiando código dos outros então eu fiz dessa forma joguei a variável txtp na comparação que está dentro do input que nada mais nada menos e o valor via teclado que o usuário digitará,mas creio sim que tem uma maneira mais elegante e leve de rodar essa pequena rotina os senhores estão opinando de maneira certa não estão resolvendo a questão,mas estão me dando um feed para e possa resolver sozinho tá certo aqui ninguem resolve nada eu estou ciente disso pode deixar comigo.

makjesus

Programação e um desafio e nesses pequenos desafios chegamos aos grandes!!

Criado 17 de julho de 2019
Ultima resposta 19 de jul. de 2019
Respostas 19
Participantes 4