Задать вопрос
@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 неработает вообще, и на валидную карту и на не валидную карту
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Код рабочий, ошибка в другом месте.
(я только переместил preventDefault и stopPropagation, чтобы форма не отправлялась и добавил вывод результата текстом)
Ответ написан
@sallahdin Автор вопроса
я щас проверил фомру 09890890797090 valid как вот это вот может быть валидом?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы