TicketForm и поля multiselect (multiple)
2
1 000
Всем здравствуйте.
Искал решения для заполнения полей типа multiselect htmlbook.ru/html/select/multiple через ticketForm. Есть решение для select modx.pro/help/6325/#comment-45022, но хотелось бы использовать ТВ-поля «множественный список» в админке, а на фронтенде — multiselect. Нужно это для последующей фильтрации через mFilter2. У страницы будут выбраны одно или несколько значений из списка с множественным выбором.
Если у вас есть наработки в этой области и вы готовы поделиться — я с удовольствием отблагодарю небольшим спасибо на карту или телефон.
Заранее благодарен.
Искал решения для заполнения полей типа multiselect htmlbook.ru/html/select/multiple через ticketForm. Есть решение для select modx.pro/help/6325/#comment-45022, но хотелось бы использовать ТВ-поля «множественный список» в админке, а на фронтенде — multiselect. Нужно это для последующей фильтрации через mFilter2. У страницы будут выбраны одно или несколько значений из списка с множественным выбором.
Если у вас есть наработки в этой области и вы готовы поделиться — я с удовольствием отблагодарю небольшим спасибо на карту или телефон.
Заранее благодарен.
Комментарии: 3
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1. Добавляем в параметры допустимых полей сниппета ticketForm необходимое тв-поле (tvname1)
2. Добавляем внутри формы создания/обновления мультиселектор:
2. Добавляем для тега select атрибут data-real, со значением, равным названию нашего тв-поля и произвольный класс (пусть будет bimbo-input, от слова «пустышка»):
3. После тега select (или в любом другом месте внутри тега form) добавляем настоящий инпут, хранящий значение тв-поля:
4. В js добавляем событие, переносящие заполненные значения от селектора-пустышки в настоящий инпут при изменении первого:
5. В тот же js добавляем событие, переносящие реальное значение из скрытого инпута в пустышку при загрузке страницы:
В итоге:
— решение относительно универсально, т.к. не привязано ни к ticket-ам, ни к конкретным родителям, а упирается только в наличие нужных классов и скрытых полей
— вся лишняя нагрузка происходит в процессе заполнения
— может работать не только с мультиселекторами, но и простыми селекторами или инпутами (удобно в случаях, если селектор нужно кастомизировать каким-либо js-скриптом, который в процессе видоизменяет его структуру)