0
Отвечен

Отключение плагина для невидимого поля (disable)

Дмитрий 3 недели назад обновлен Антон Жиянов 2 недели назад 7

Добрый день!

Есть поле Название компании, которое изначально не видимо, т.к. скрыто в неактивном табе. Отключение/включения плагина для этого поля зависит от значения, переданного в поле страна.

После загрузки страницы я проверяю значение в поле страна и отключаю, если надо, плагин dadata для поля Название компании через метод disable. Но сам плагин, на сколько я понимаю, инициализируется, когда поле Название компании становится видимым (при переходе на таб c полем). После инициализации плагин всегда включен, даже если ранее я его отключил через disable. Как решить этот вопрос? Возможно есть коллбак, который срабатывает после инициализации плагина?

Если поле Название компании видно сразу при загрузки страницы, то все работает корректно.

интерфейс: jquery-плагин справочник: компании

Ответ

+1
Ответ

Да, плагин включается, когда становится видимым. Вы можете отлавливать событие перехода на таб с полем и выключать его после этого: https://codepen.io/nalgeon/pen/oNWWXaR?editors=101

ХОРОШО, МНЕ ПОНРАВИЛОСЬ

Грамотный ответ в довольно быстрые сроки.
Остался доволен. Спасибо.

Оценка удовлетворенности от Дмитрий 2 недели назад
На рассмотрении

Добрый день! Зачем вообще включать и отключать плагин?

Подсказки от dadata в поле "Название компании" должны выводиться только для 3-ех стран, для остальных стран подсказки надо убрать. Для этого я и отключаю плагин в зависимости от страны (возможно не правильно выразился, мне надо вкл/откл подсказки). Использую инструкции от сюда - https://support.dadata.ru/ru/communities/1/topics/65-otklyuchenie-i-vklyuchenie-jquery-plaginahttps://codepen.io/dadata/pen/NqJwEp?editors=101.

Сами методы (disable/enable) нашел еще здесь https://confluence.hflabs.ru/pages/viewpage.action?pageId=207454322 (https://prnt.sc/1bg883d) - там написано, что они вкл/откл плагин.

Я правильно понял, что проблема воспроизводится так?

  1. Скрыть текстовое поле.
  2. Инициализировать плагин на текстовом поле.
  3. Выполнить disable() на плагине.
  4. Показать текстовое поле.
  5. Ожидается, что плагин выключен, но по факту он включен.

Да, все верно.

Но, на сколько я понимаю, сам плагин инициализируется, когда поле становится видимым - https://prnt.sc/1bpi9rs.

+1
Ответ

Да, плагин включается, когда становится видимым. Вы можете отлавливать событие перехода на таб с полем и выключать его после этого: https://codepen.io/nalgeon/pen/oNWWXaR?editors=101

Благодарю, была такая идея, так и сделаю тогда.
Все-таки возможно тут есть недоработка со стороны самого плагина, т.к. не очевидно что плагин включается, когда становится видимым.

Отвечен

Да, учтем на будущее. Спасибо, что сообщили! Если остались вопросы — дайте знать.

Сервис поддержки клиентов работает на платформе UserEcho