Mambli-Joe
@Mambli-Joe

В чем ошибка скрипта для проверки инпутов?

Доброго времени суток. Подскажите, пожалуйста.
Есть Форма
1)Почему проверка первого инпута с name = "number-1" в случае корректного ввода не окрашивает границу в зеленый цвет и не разрешает отправку, хотя почти такая же проверка с holder пропускает. В чем моя ошибка? И можно ли сделать это изящнее?
2) Как правильно реализовать проверку были ли не корректно заполненные поля? Я сделал так, что каждая неудачная проверка уменьшает isValid на 100 и после всех проверок проверяю отрицательное оно или нет, и тогда возвращаю true или false.
3) Как сделать так что бы ненужно было обновлять страницу для отправки формы если уже были введены не верные значения и функция 1 раз отработала, а можно было исправить значение и снова попробовать отправить.
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
john36allTa
@john36allTa
alien glow of a dirty mind
1. меняйте подход с литературного на технический:
number_1 = obj.number - 1; // это значит что typeof obj.number == 'number' и из него вычитается единица

number_1 = obj["number-1"].value   // и не забывайте что в obj по name можно найти элементы но не значения элементов

2. Если нужны все поля в целости достаточно одной переменной valid = true, при нарушении одного из условий = false
3. не нужно отправлять не корректные данные - if (!valid) alert('пытайтесь снова'), но на сервере, в рамках безопасности, проверять обязательно!

p.s.
var holder_pattern = /^[A-Z][a-z][a-z][a-z]+\s[A-Z][a-z][a-z][a-z]+$/i,
    number_pattern = /^[0-9]{4}$/,
    cvc_pattern = /^[0-9]{3}$/,

меняйте на
var holder_pattern = /^[A-Z][a-z]{3,}\s[A-Z][a-z]{3,}$/,
    number_pattern = /^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$/,
    cvc_pattern = /^[0-9]{3}$/,

а лучше юзайте html pattern (всё равно фронтэнд как ни крути)
p.p.s я бы так делать не стал вообще, подход как по мне слишком олд скульный
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы