Сравнение паролей — parsley validator


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

Некоторое время назад столкнулся с казалось бы тривиальной задачей — сравнить пароли при регистрации пользователя и в случае ошибки выдать пользователю соответствующее сообщение. Так уж получилось что раньше для этого дела я использовал самописный jQuery, но в данном проекте во что бы то ни стало нужно было задействовать Parsley validator. В документации было четко обозначено что для сравнения полей можно использовать

где anotherfield — это id первого запроса ввода пароля. Нет ничего проще подумал я и сделал согласно документаци.

Однако все работало корректно кроме сравнения паролей. Стало быть parsley отрабатывал, значит проблема была или в синтаксисе при сравнении паролей либо из-за каких-то внешних воздействий (конфликта с другими скриптами).

Два часа угробил на поиски проблемы, перегуглил кучу материала. То и дело натыкался на аналогичную проблемы других разработчиков, но все решения что предлагались это были в основном костыли в виде дописанных скриптов или советы по пересмотру синтаксиса, причем не всегда корректные. В общем-то с костылем проблема решалась, но это не наш метод и нужно было разобраться почему сделав все согласно документации оно не работает. Утро вечера мудренее.

Утром со свежей головой отправился снова в гугл. Наткнулся на ветку в оверфлоу, где пользователь описывает идентичную моей проблему. Никакого решения там не предлагалось. У того разработчика кроме парсли валидатора был еще один скрипт на странице, который использовал старую библиотеку jQuery, еще версии 2.0. У меня было нечто похожее. Другой скрипт, но тоже со старой библиотекой. Все что нужно было сделать это заменить версию jQuery с 2 на 3. Думаю кому-то может пригодиться. Удачи.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *