Фильтр представлений при просмотре автоматически теряет фокус

9

Я настроил вид с включенным ajax. Я также добавил открытый фильтр с включенной функцией автоматической отправки, чтобы при вводе пользователем в текстовом поле представление автоматически обновлялось. Проблема заключается в том, что при автоматической отправке формы текстовое поле теряет фокус.

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

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

MWay
источник
2
Это известная проблема: drupal.org/node/1217948, и ее не так просто исправить
Даниэль Венер
Сможете ли вы использоватьозакрытый_фильтр, чтобы вручную изменить значения и добавить свой собственный javascript?
Эндрю Уэлч

Ответы:

2

У вас действительно есть только один выбор здесь.

Так или иначе, вам нужно (пере) переместить вашу форму из представлений.

Причина, по которой открытый фильтр теряет фокус, заключается в том, что весь вид заменяется на ajax. Если ваша форма отображается в том же виде, вы просто не сможете удержать фокус.

Решения (все они включают перемещение вашей формы вне поля зрения):

  • Использовать представления «Открытые фильтры в блоке» Рекомендуемая опция
  • Настройте пользовательский блок для отображения формы фильтра экспозиции (Требуется написание кода)

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

  • Вы всегда можете просто взломать файл views.tpl.php, чтобы переместить вашу открытую форму из div основного вида. Я использую здесь "взломать", потому что это не очень хороший вариант. Это поместит форму прямо над вашим представлением, но представления JS-кода только заменят представление div. Это сказанное JS не собирается просто работать. Вам нужно это исправить.

  • Тогда в крайнем случае вы всегда можете просто использовать JS для перемещения вашей формы. Это очень обескураживает. Потому что форма снова потеряет поведение JS после того, как представления обновят отображение

ericduran
источник
На всякий случай, если кому-то еще будет интересно, я думаю, что решение, рекомендованное здесь @ericduran для выбора опции Views, чтобы поместить «открытую форму в блок», просто доступно, если представление страницы (оно не доступно для представления как блока) ,
Макс Старкенбург