Баха Волков

Баха Волков

С нами с 10 ноября 2016; Место в рейтинге пользователей: #12
Баха Волков
20 марта 2023, 21:27
0
На данный момент есть баг связанный с вызовом сниппета на fenom, завтра выпущу патч с исправлением.
Баха Волков
20 марта 2023, 21:27
0
День добрый!

1. У компонента нет и не может быть никаких конфликтов с jquery. Даже по stacktrace в вашем скрине видно, что ошибка не связана с fetchit. В вашем конкретном случае надо разбираться, уверен, выясниться что ошибка где-то в вашем коде.

2. Поведение ожидаемое, в данной заметке показан пример дополнительной валидации на стороне клиента, это значит, что и за поведение также разработчик отвечает. В вашем случае, если вы хотите показывать всплывающее уведомление, то нужно добавить:

fetchit.setError('phone', 'Введите пожалуйста корректный номер телефона');
FetchIt.Message.error('Введите пожалуйста корректный номер телефона');  // <-- ЭТУ СТРОКУ
e.preventDefault();

3. Не соглашусь, библиотека intl-tel-input как раз даёт возможность вводить номера телефонов в любом формате, а маска прямо противоречит этому. Вы можете использовать любое готовое решение или своё, а FetchIt без разницы что вы там сделаете, он просто собирает все данные с полей ввода формы и вскармливает их указанному сниппету.

На сколько я понимаю для данного компонента не нужен jquery, но все же с ним у него конфликт.
У FetchIt нет и не может быть конфликтов с jquery.

В вообще было бы здорово, если бы компонент прятал саму форму из html так-как роботы зачастую уже надоели и все защиты обходят. (Наверное это больше вопрос к fiormit)
Я подумаю как-нибудь о защите от спама, может что-то интересное и надумаю.

Еще раз спасибо за ваш труд!
Пожалуйста!
Баха Волков
13 марта 2023, 14:27
+1
За модуль спасибо!
Пожалуйста!

Но не понятно в чем преимущество удаления зависимости от jquery?
Я (очень) далеко не первый кто прыгает в поезд тенденции отказа от jQuery, которая возникла по объективным причинам. Главная из которых: сам JavaScript её почти/уже догнал по функционалу и удобству.

Использовать jQuery только чтобы навесить один обработчик на событие и добавить/удалить css класс с нескольких элементов — это одеть медведя в меховую шубу! Вот если вы сфинкс в Сибири, то надевать шубу (использовать jQuery) имеет смысл.

99% сайтов на modx используют эту либу.
Ну и прекрасно, но это к чему? Это же аргумент в пользу FetchIt. Следите за руками:

— Если (как вы утверждаете) 99% сайтов на MODX используют jQuery, то AjaxForm будет работать на 99% сайтах, остальным сайтам (1%) которые без jQuery, придется тянуть зависимость только чтобы работал AjaxForm.

— Если (как вы утверждаете) 99% сайтов на MODX используют jQuery, то FetchIt будет работать на 100% сайтах, даже у тех где используется jQuery.

Да и говорить что она огромная, это смешно, по сути весит как одна картинка на любом сайте да и в браузере уже у всех в кеше есть.
На это уже @Артур Шевченко ответил, но я дополню, больше не для вас, а для всех кто так думает. FetchIt делает больше и лучше за 300 строчек кода чем AjaxForm за более чем 12 000.
Баха Волков
10 марта 2023, 18:39
0
Проверил и не смог подтвердить, причем параметр clearFieldsOnSuccess по умолчанию включен и поля должны очищаться. Полагаю, что были ошибки в кастомных js и из-за них ломалось поведение.
Баха Волков
10 марта 2023, 13:22
0
Нужны уточнения:

1. Всё остальное работает? Отправляется ли форма, работает ли валидация?

2. Сколько вызовов FetchIt есть на странице? Если больше одного, то покажи их тоже.

3. Есть ли в консоли js какие-то ошибки?
Баха Волков
10 марта 2023, 09:46
0
Спасибо за отклик!

Исправил.

Версия 1.0.0 доступна на modstore.pro
Она же будет доступна после модерации на modx.com
Баха Волков
07 марта 2023, 15:24
0
На данный момент — да, третья версия MODX так долго добиралась, что я и забыл про её существование
Баха Волков
03 марта 2023, 14:19
0
Вопрос: есть ли какая то реализация антиспама?
Ситуация ровно такая же как и с AjaxForm. Например компонент reCaptchaV3 отработает точно также.
Баха Волков
02 марта 2023, 21:21
+6
Документацию писал в три раза дольше чем сам компонент 🙄
Баха Волков
27 октября 2022, 12:03
-1
Пользуйтесь поиском, запрос буквально такой: «MIGX в MIGX fenom» и получаете миллион таких же вопросов где в каждом есть один и тот же ответ
Баха Волков
16 октября 2022, 12:53
0
Помогите пользователям понять вас.

Нашел в документации такой снипет
В какой документации? Документация чего?
Баха Волков
24 марта 2022, 20:36
0
@Zhan Не флуди, одни и те же вопросы всем подряд задавать нет смысла
Баха Волков
24 марта 2022, 10:47
0
А всего лишь нужно было документацию почитать или взглянуть на код pdoPage:

'pageVarKey' => 'unique',
'pageNavVar' => 'unique.nav',
'ajaxElemWrapper' => '#unique',
'ajaxElemRows' => '#unique .rows',
'ajaxElemPagination' => '#unique .pagination',
'ajaxElemLink' => '#unique .pagination a',
'ajaxElemMore' => '#unique .more',
Баха Волков
18 марта 2022, 11:01
0
@Leonid Krylov

если ЕГО стоимость выше на 10+%
ЕГО — дополнение который размещен первым? Для уточнения: если mSearch2 например стоит 1100 руб. то какой-нибудь условный mOtlichniyPoisk должен стоить не более 1000 руб.?
Баха Волков
10 марта 2022, 12:28
0
Ну вообще запись станет длиннее this.config.someprop против this.someprop, но я доверюсь твоему опыту.
Запись (а точнее доступ к конфигу) станет длиннее, но заметь, с такой записью у тебя как минимум минус несколько строчек в конструкторе, ну и конфиг не будет путаться на первом уровне класса.

Тут отдельная проблема. В конструктор надо передавать уникальный селектор, потому что в противном случае если на странице больше 1 вызова AjaxForm обработчики навешиваются столько раз сколько вызывается сниппет, а это плохо по понятным причинам. И передавать селектор в каждом вызове мне кажется неудобным. Я думаю надо установить селектор по умолчанию и дополнять его меткой времени и тоже самое делать с переданным селектором, чтобы на 100% исключить вероятность дублирования или есть варианты решения получше?
А тут самое простое решение, это при навешивании обработчика проверять например css класс af_initialized, а уже после добавить к форме этот класс.

Это у меня он возвращает true, а если кто-то захочет свою логику, например не отправлять пока не прочитают политику работы с персональными данными?
Теперь понял

Я самоучка, это не оправдание, но что значит пройтись по стандартам не понимаю.
Это наверное потом, когда вдруг захочешь сделать PR
Баха Волков
09 марта 2022, 10:20
+1
@Фарит Не надо писать такие заголовки, заголовок вопроса должен отражать суть вопроса и до ката также