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

[Dúvida] Desafio Hora da prática.

de todas as formas que mecho no código, a mensagem de Erro, todos os campos devem ser preenchidos, aparece antes de poder digitar os dados, como posso alterar isso? Essa foi a única coisa que não conseguir alterar, todo o restante funcionando normalmente, quem quiser usar como uma base está aí. Desde já agradeço. Segue meu código

alert('Boas vindas ao nosso site'); let nome = 'Lua'; let idade = 25; let numerodeVendas = 50; let saldoDisponivel = 1000;

let mensagemDeErro = 'Erro! Preencha todos os campos'; alert('Erro! Preencha todos os campos'); nome = prompt('Digite o seu nome');

idade = prompt('Digite a sua idade');

if (idade >= 18) { alert('Pode tirar a habitilação!'); } else{ alert('Você ainda não pode tirar habilitação'); }

2 respostas
solução!

Oi, Gustavo. Tudo belezinha?

O problema tá na ordem em que a mensagem de erro é exibida. Isso acontece porque o código tá exibindo o alerta de erro imediatamente, antes de verificar se os campos foram preenchidos.

Olha só essa opção de correção:


let nome = '';
let idade = '';
let mensagemDeErro = 'Erro! Preencha todos os campos';

// Solicita o nome e a idade
nome = prompt('Digite o seu nome:');
idade = prompt('Digite a sua idade:');

// Verifica se os campos foram preenchidos
if (nome === '' || idade === '') {
    alert(mensagemDeErro);
} else {
    // Verifica a idade para mostrar a mensagem apropriada
    if (parseInt(idade) >= 18) {
        alert('Pode tirar a habilitação!');
    } else {
        alert('Você ainda não pode tirar habilitação.');
    }
}

O que mudou no código:

  1. Adição de uma verificação: Agora o código verifica se os campos nome e idade foram preenchidos antes de exibir a mensagem de erro.
  2. Correção na lógica: A mensagem de erro só aparece quando os campos estão vazios.
  3. Conversão de tipo: O valor de idade foi convertido para número usando parseInt para permitir comparações corretas.

Explicação básica:

  • O prompt retorna uma string, e strings vazias ('') representam campos não preenchidos.
  • O operador || verifica se pelo menos um dos campos está vazio.
  • A função parseInt converte a string de idade para um número para comparação lógica.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

bons estudos

Muito obrigado Lorena