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

input vs input.value no if

Boa tarde para quem visualizar esta dúvida. Gostaria de saber o motivo pelo qual, no bloco if, se trocar "input.value" por apenas "input" o programa não faz a comparação e sempre mostra o alert de Errado.

Desde já, agradeço.

<meta charset="utf-8">

<input/>
<button>Compare com o meu segredo</button>

<script>

var segredo = 5;
var input = document.querySelector("input");

function verifica() {
    if(input.value == segredo) {
        alert("ACERTOU!");
    } else {
        alert("ERROU!");    
    }    
}

var button = document.querySelector("button");

button.onclick = verifica;
</script>
3 respostas
solução!

Oi Hugo tudo bem?

O código não funciona porque a variável input está guardando o elemento HTML input, que possui diversas informações dentro dele. Para acessar o valor dele tem que acessar a propriedade .value por isso que no if fazemos input.value .

Espero ter ajudado!!!

Antes eu estava focando na parte do input receber o valor numérico(pelo usuário) e olhando esse valor de forma isolada.

A resposta ajudou a entender que o que a variável input recebeu, por trás dos panos, através do "document.querySelector", foi todo o conjunto de informações.

E o IF não sabe qual valor comparar dentro desse conjunto, a menos que seja indicado, no caso com .value.

Obrigado!

Disponha e bons estudos!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software