@sallahdin

Validator credit number?

Уважаемые форумчане, есть код для проверки валидации поля input credit card,

const form = document.getElementById('PayForm');
const cardNumberInput = document.getElementById('valid');

function luhnAlgorithm(digits) {
  let sum = 0;

  for (let i = 0; i < digits.length; i++) {
    let cardNum = parseInt(digits[i]);

    if ( i % 2 === 0) {
      cardNum = cardNum * 2;

      if (cardNum > 9) {
        cardNum = cardNum - 9;
      }
    }

    sum += cardNum;
  }

  return sum % 10 === 0;
}

form.addEventListener('submit', (event) => {
    const cardNumber = cardNumberInput.value;
    const isCardNumberValid = luhnAlgorithm(cardNumber);
    if (!isCardNumberValid) {
      event.preventDefault()
      event.stopPropagation()
      cardNumberInput.classList.add('invalid-card')
    }
})


проблема в том что, этот код какую бы я карту в не вбил для теста, border bottom остается красным, и submit неработает вообще, и на валидную карту и на не валидную карту
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Код рабочий, ошибка в другом месте.
(я только переместил preventDefault и stopPropagation, чтобы форма не отправлялась и добавил вывод результата текстом)
Ответ написан
@sallahdin Автор вопроса
я щас проверил фомру 09890890797090 valid как вот это вот может быть валидом?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект