1
resposta

[Sugestão] Desafio

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

    if(tipo.value == 'pista') {
        comprarPista(qtd);
    }

}

function comprarPista(qtd) {
    const qtdPista = parseInt(document.getElementById('qtd-pista').textContent);
    if (qtd > qtdPista) {
        alert('Quantidade indisponivel para pista');
    } else {
        qtdPista = qtdPista - qtd;
        document.getElementById('qtd-pista').textContent = qtdPista;
        alert('Comprar realizada com sucesso!');
    }

}

Olá,estou tendo dificuldade para achar erro no codigo,não esta funcionando na tela do site

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Matheus! Como vai?

Com o que você descreveu, o problema aqui é declarar qtdPista como const e depois tentar atualizar o valor. Resolva fazendo o seguinte: troque para let, valide qtd e garanta que o texto do elemento seja convertido para número antes da subtração.

Uma dica interessante para o futuro é usar Number() para converter strings em número e checar Number.isNaN. Ajuste seu código assim:


// valida e compra apenas para 'pista'
function comprar() {
  const tipo = document.getElementById('tipo-ingresso').value;
  const qtd = Number(document.getElementById('qtd').value);

  if (!Number.isInteger(qtd) || qtd <= 0) {
    alert('Informe uma quantidade valida');
    return;
  }

  if (tipo === 'pista') {
    comprarPista(qtd);
  }
}

function comprarPista(qtd) {
  let qtdPista = Number(document.getElementById('qtd-pista').textContent);

  if (qtd > qtdPista) {
    alert('Quantidade indisponivel para pista');
    return;
  }

  qtdPista = qtdPista - qtd;
  document.getElementById('qtd-pista').textContent = String(qtdPista);
  alert('Compra realizada com sucesso!');
}

O código acima evita reatribuir uma variável const, valida a entrada do usuário e atualiza o estoque corretamente.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!