Не валидирует поле — jQuery Validation Plugin

Опубликовано: 24.08.2018

Как это часто бывает, для реализации определенных "фич" и улучшений для сайта, я использую готовые jQuery плагины. Хорошие решения просты в подключении, имеют широкий функционал и отлично справляются со своей задачей - зачем писать свой велосипед?

Так для валидации форм и отдельных полей я пользуюсь отличным плагином jQuery Validation Plugin. Но сегодня произошло событие, которое побудило меня написать эту короткую заметку. Плагин отказался валидировать поле. Да, да. Я проверил все несколько раз - объявление, написание и даже ошибки в консоли. Все было правильно. Все поля проходили валидацию, кроме одного - чекбокса согласия с пользовательским соглашением. Давайте разберемся что могло произойти.

Честно признаться я до сих пор не смог понять точную причину, но решение было найдено. Дело в том, что этот чекбокс был оформлен с помощью css и выглядел не как стандартный элемент (ох уж эти дизайнеры). Поэтому настоящий checkbox был спрятан от глаз. У него стояли всякие правила типа: position:absolute; top:0; left:0; width:0; height:0; margin:0; opacity:0; и внимание!!! padding:0;. Именно из-за padding:0; этот плагин отказывался валидировать поле. Убрав это свойство - все заработало просто прекрасно! Возможно, вам тоже пригодится это.

Почему мне непонятна причина такого поведения? Потому что на другом проекте точно такой же чекбокс с точно такими же css правилами и padding:0; проходит валидацию! Детальное сравнение ни к чему не привело - формы идентичны по содержанию. Видимо, это внутренняя жизнь плагина и надеюсь, что он не захочет захватывать человечество. Всем успехов:)

IRC (Internet Relay Chat)
rss