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

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $
Artezio Москва
от 160 000 до 220 000 ₽