Aqui, em negrito , usei o isNan mas notei algo, não foi aceito no campo de quantidade nenhuma letra exceto a letra "E" gostaria de saber se isso é normal ou um caso a parte.
let limitQtd = 5;
function comprar(){
let cpf="2"
let tipo = document.getElementById("tipo-ingresso");
// converte para inteiro(parseInt) e pegar o valor inserido(value)
let qtd = parseInt(document.getElementById("qtd").value);
/* alert(tipo.value);// o uso do value para pegar o valor
console.log(qtd.value);*/
if(qtd > limitQtd){
alert(`Apenas pode comprar ${limitQtd} por pessoa`)
return false
}
//**Adicione uma verificação para garantir que a quantidade inserida pelo usuário seja um número positivo.
// Se o valor não for válido, exiba uma mensagem de erro adequada.**
if(qtd < 0 || isNaN(qtd)){
alert(`Erro: Insira a quantidade de ingresso`)
return false
}
// Compra de diferentes ingressos
if (tipo.value == 'pista'){
comprarPista(qtd);
} else if (tipo.value == 'superior'){
comprarSuperior(qtd);
} else { (tipo.value == 'inferior')
comprarInferior(qtd)
}
verificaCPF(cpf, qtd)
}
// Arrays para armazenar os CPFs e a quantidade de ingressos
let armazenaCPF = [];
let armazenaQtIngresso = [];
function verificaCPF(cpf, qtd) {
// Verifica se o CPF já está registrado
let indice = armazenaCPF.indexOf(cpf);
if (indice !== -1) {
// Se o CPF já existe, soma a nova quantidade de ingressos à anterior
let totalIngressos = armazenaQtIngresso[indice] + qtd;
if (totalIngressos > limitQtd) {
alert(`CPF ${cpf} já comprou ${armazenaQtIngresso[indice]} ingressos.
O limite é ${limitQtd}. Compra não permitida.`);
return false;
} else {
armazenaQtIngresso[indice] = totalIngressos;
}
} else {
// Se o CPF ainda não foi registrado, adiciona ao array
armazenaCPF.push(cpf);
armazenaQtIngresso.push(qtd);
}
console.log("CPFs registrados:", armazenaCPF);
console.log("Ingressos comprados por CPF:", armazenaQtIngresso);
return true;
}
function comprarPista(qtd){
// Captura o valor, converte para inteiro(parseInt) e altera o valor pois não é um formulario
let qtdPista = parseInt(document.getElementById('qtd-pista').textContent);
if (qtd > qtdPista){
alert("Quantidade indisponivel para pista");
}else{
//Decrementa a quantidade de ingressos
qtdPista -= qtd;
//Recupera o elemento da pagina cm o novo valor da variavel qtdPista
document.getElementById('qtd-pista').textContent = qtdPista;
alert("compra realizada dom sucesso");
}
}
function comprarSuperior(qtd){
// Captura o valor, converte para inteiro(parseInt) e altera o valor pois não é um formulario
let qtdSuperior = parseInt(document.getElementById('qtd-superior').textContent);
if (qtd > qtdSuperior){
alert("Quantidade indisponivel para Superiro");
}else{
qtdSuperior = qtdSuperior - qtd;
//Recupera o elemento da pagina cm o novo valor da variavel qtdPista
document.getElementById('qtd-superior').textContent = qtdSuperior;
alert("compra realizada dom sucesso");
}
}
function comprarInferior(qtd){
// Captura o valor, converte para inteiro(parseInt) e altera o valor pois não é um formulario
let qtdInferior = parseInt(document.getElementById('qtd-inferior').textContent);
if (qtd > qtdInferior){
alert("Quantidade indisponivel para Inferior");
}else{
qtdInferior = qtdInferior - qtd;
//Recupera o elemento da pagina cm o novo valor da variavel qtdPista
document.getElementById('qtd-inferior').textContent = qtdInferior;
alert("compra realizada dom sucesso");
}
}