1
resposta

[Dúvida] Desafio 1

Olá! Percebi que caso eu adicione a condicional do desafio 1 em uma function (para organizar o código e deixar mais fácil uma possível manutenção), após o botão executar a function ele dará sequência a compra, mesmo avisando que é um valor inválido, poderiam me ajudar?

function comprar () { let tipoIngresso = document.getElementById('tipo-ingresso').value; let quantidade = parseInt(document.getElementById('qtd').value)

verificarQtd(quantidade);

if (tipoIngresso == 'pista') {
    comprarPista (quantidade);
} else if (tipoIngresso == 'superior') {
    comprarSuperior(quantidade);
} else {
    comprarInferior(quantidade);
}

}

function comprarPista (quantidade) { let qtdPista = parseInt(document.getElementById('qtd-pista').textContent); if (quantidade > qtdPista) { alert('Quantidade indisponivel para o tipo de ingresso') } else { alert('A compra foi realizada com sucesso') qtdPista = qtdPista - quantidade; document.getElementById('qtd-pista').textContent = qtdPista; } }

function comprarSuperior (quantidade) { let qtdSuperior = parseInt(document.getElementById('qtd-superior').textContent); if (quantidade > qtdSuperior) { alert('Quantidade indisponivel para o tipo de ingresso') } else { alert('A compra foi realizada com sucesso') qtdSuperior= qtdSuperior - quantidade; document.getElementById('qtd-superior').textContent = qtdSuperior; } }

function comprarInferior (quantidade) { let qtdInferior = parseInt(document.getElementById('qtd-inferior').textContent); if (quantidade > qtdInferior) { alert('Quantidade indisponivel para o tipo de ingresso') } else { alert('A compra foi realizada com sucesso') qtdInferior= qtdInferior - quantidade; document.getElementById('qtd-inferior').textContent = qtdInferior; } }

function verificarQtd (quantidade) { if (isNaN(quantidade) || quantidade <= 0) { alert('Por favor, insira uma quantidade válida'); return; } }

1 resposta

Olá boa noite! Caso queira exibir uma mensagem de erro e encerrar a função basta adicionar um retorn no final do if que exibi o erro, assim ao entrar no if o alert será exibido e a função encerrada sem executar o restante do código fora do if. Pode inclusive remover o else, caso nao entre no if a compra será realizada e vai exibir o alert, assim o else é desnecessario.

function comprarSuperior (quantidade) {
    let qtdSuperior = parseInt(document.getElementById('qtd-superior').textContent); 
    if (quantidade > qtdSuperior) { 
         alert('Quantidade indisponivel para o tipo de ingresso');
         return;
    } 
    alert('A compra foi realizada com sucesso');
    qtdSuperior = qtdSuperior - quantidade;
    document.getElementById('qtd-superior').textContent = qtdSuperior; 
    }