1
resposta

[Sugestão] Utilizando template strings para as três funções

Compartilho uma solução possível para este caso. Notei que os nomes das IDs eram parecidos, então utilizei template strings para concatenar com o tipo de ingresso que foi escolhido na caixa de seleção e enviei dois parâmetros para a função de compra. Adicionei validação para o caso do campo qtd estar vazio e incluí uma função de zerar o campo após o processamento.


function limpaCampo() {
  document.getElementById("qtd").value = 0;
}
limpaCampo();

function comprar() {
  let tipo = document.getElementById("tipo-ingresso").value;
  let qtd = parseInt(document.getElementById("qtd").value);
  comprarIngresso(tipo, qtd);
}

function comprarIngresso(tipo, qtd) {
  let qtdTipo = parseInt(document.getElementById(`qtd-${tipo}`).innerHTML);
  if (qtd == 0){
    alert('É necessário informar a quantidade.');
    return;
  }

  if (qtdTipo == 0) {
    alert(`Ingressos esgotados para o setor ${tipo}.`);
    limpaCampo();
  } else if (qtd > qtdTipo) {
    alert("A quantidade desejada não está disponível.");
    limpaCampo();
  } else {
    qtdTipo = qtdTipo - qtd;
    document.getElementById(`qtd-${tipo}`).innerHTML = qtdTipo;
    limpaCampo();
    alert("Compra realizada com sucesso.");
  }
}
1 resposta

Oi, Leonardo! Tudo bem?

Parabéns por conseguir por conta própria elaborar uma solução super válida para o caso, bateu um orgulho! Muito obrigada também por compartilhar a sua solução com a nossa comunidade do fórum, tenho certeza que ajudará e servirá de inspiração para muitos colegas!

Somado a isso, caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!