Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validação quantidade inválida

No código, quando é digitado uma quantidade inválida, essa quantidade é adicionada ao carrinho independente de ser zero ou negativo. Como corrigir?

if (!product || product.trim() === "") { 
      alert("Please select a product.");
      return;
    }

    if (isNaN(quantity) || quantity <= 0){
      alert('Invalid');
    }
1 resposta
solução!

Tente isso: return; após o alerta: Coloque a palavra-chave return; dentro do bloco if que verifica a quantidade inválida. Isso interrompe a execução da função imediatamente após exibir o alerta. Consequentemente, o código que adiciona o item ao carrinho não será executado se a quantidade for inválida.

Ai, quando o usuário digitar uma quantidade inválida:

A função será interrompida devido ao return; O item não será adicionado ao carrinho.

if (!product || product.trim() === "") {
  alert("Por favor, selecione um produto.");
  return;
}

if (isNaN(quantity) || quantity <= 0) {
  alert("Quantidade inválida. Insira um número maior que zero.");
  return; // Impede a adição ao carrinho
}

Se você quiser ser ainda mais preciso, pode usar uma expressão regular para verificar se a quantidade é apenas um número inteiro positivo: A expressão regular ^\d+$ garante que a entrada seja composta apenas por dígitos (\d) e que haja pelo menos um dígito (+).

if (!/^\d+$/.test(quantity) || quantity <= 0) {
  alert("Quantidade inválida. Insira um número inteiro positivo.");
  return;
}