[RESOLVIDO] Problema com condições usando JavaScript

19 respostas Resolvido
programação
M

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

D

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

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

if(x != 10) {

Ou

if(x !== 100) {
M

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!!’)
}

D

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

M

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!!
M

Bota casaco tira casaco…

D

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

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

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…

F

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

M

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

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

        var pais = 'Brasil'

        if(pais !== 'Brasil'){
            alert('É estrangeira!')
        }
        else{
            alert('É brasileira!')
        }
    }
M
function test(){ var txtp = document.getElementById('txtp').value var pais = 'Brasil' if(pais !== 'Brasil'){ alert('É estrangeira!') } else{ alert('É brasileira!') } }
M
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!!

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

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

M

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!')
         
        }
    }
F

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

M

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.

M

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