Quero só reforçar o código, quando deixo a quantidade vazia ela quebra o valor do ingresso escolhido e ele vira um NaN (Not a Number). consegui resolver tirando o parseInt() da quantidade e do textContent do ingresso, mas tenho medo do Js acabar interpretando a qtd e o numero de ingressos como string e não realizar o calculo do jeito certo ou acabar bugando o código. Então queria saber se tem um jeito de deixar as variaveis ainda como números, mas fazer com que se o campo da quantidade estiver vazio não prejudique o valor do campo do ingresso e/ou alerte que o valor é invalido.
function comprar() {
let tipoIngresso = document.getElementById('tipo-ingresso').value;
let qtd = document.getElementById('qtd').value; // aqui precisei tirar o parseInt()
if (tipoIngresso == 'inferior') {
comprarInferior(qtd);
} else if (tipoIngresso == 'superior') {
comprarSuperior(qtd);
} else {
comprarPista(qtd);
}
document.getElementById('qtd').value = '';
}
function comprarInferior(qtd) {
let inferior = document.getElementById('qtd-inferior').textContent; // aqui também tirei o parseInt()
if (qtd > inferior) {
alert('Quantidade indisponível!');
} else {
inferior = inferior - qtd;
document.getElementById('qtd-inferior').textContent = inferior;
}
}
function comprarSuperior(qtd) {
let superior = parseInt(document.getElementById('qtd-superior').textContent);// os outros ainda estão como parseInt()
// pra ter certeza que o Js vai lê-los como números, mas quebram se qtd = ' '
if (qtd > superior) {
alert('Quantidade indisponível!');
} else {
superior = superior - qtd;
document.getElementById('qtd-superior').textContent = superior;
}
}
function comprarPista(qtd) {
let pista = parseInt(document.getElementById('qtd-pista').textContent);
if (qtd > pista) {
alert('Quantidade indisponível!');
} else {
pista = pista - qtd;
document.getElementById('qtd-pista').textContent = pista;
}
}