Widoki odsłonięte automatyczne przesyłanie filtra traci ostrość

9

Mam skonfigurowany widok z włączonym ajaxem. Dodałem również odsłonięty filtr z włączoną funkcją automatycznego wysyłania, aby podczas wpisywania użytkownika w polu tekstowym widok był aktualizowany automatycznie. Problem polega na tym, że gdy formularz przesyła się automatycznie, pole tekstowe traci ostrość.

Przeczytałem, że muszę rozdzielić odsłoniętą formę na osobny blok, jednak ta opcja nie jest dostępna, ponieważ mój widok jest samym blokiem.

Jakakolwiek pomoc byłaby mile widziana, ponieważ to prawdziwy ból związany z koniecznością ciągłego klikania w polu tekstowym, aby kontynuować pisanie.

MWay
źródło
2
Jest to znany problem: drupal.org/node/1217948 i nie jest tak łatwy do naprawienia
Daniel Wehner
Czy możesz zrobić odsłonięty filtr_alterów, aby ręcznie zmienić wartości i dodać własny kod JavaScript?
Andrew Welch,

Odpowiedzi:

3

Również obejście podstawowego problemu, ale włączenie tego js do mojego tematu rozwiązało ten problem dla mnie.

vegardjo
źródło
2

Masz naprawdę tylko jeden wybór tutaj.

Tak czy inaczej musisz (ponownie) przenieść formularz poza widoki.

Powodem, dla którego odsłonięty filtr traci fokus, jest to, że cały widok jest zastępowany w ajax. Jeśli twoja postać jest renderowana przez ten sam widok, po prostu nie ma możliwości, abyś mógł się skupić.

Rozwiązania (wszystkie obejmują przeniesienie formularza z widoku):

  • Użyj widoków „odsłoniętych filtrów w bloku” Zalecana opcja
  • Skonfiguruj blok niestandardowy, aby wyrenderować formularz filtru ujawnienia (Wymagaj pisania kodu)

Poniżej znajduje się kilka opcji, których należy unikać, ale wspominając o tym w ostateczności.

  • Zawsze możesz po prostu „zhakować” swoje views.tpl.php, aby przenieść formularz ujawnienia poza główny div widoku. Używam tutaj „hack”, ponieważ nie jest to dobra opcja. Spowoduje to umieszczenie formularza bezpośrednio nad twoim widokiem, ale kod JS wyświetleń zastąpi tylko div widoku. Biorąc to pod uwagę, JS nie będzie po prostu działać. Musisz to naprawić.

  • Następnie w ostateczności zawsze możesz po prostu użyć JS, aby przenieść formularz. Ten jest bardzo odradzający. Ponieważ ponownie formularz straci zachowanie JS po tym, jak widoki zaktualizują wyświetlanie

ericduran
źródło
Na wypadek, gdyby ktoś się zastanawiał, uważam, że rozwiązanie zalecane tutaj przez @ericduran, aby wybrać opcję Widoki, aby umieścić „odsłoniętą formę w bloku”, jest dostępne tylko wtedy, gdy widok dotyczy strony (nie jest dostępny dla widoku jako bloku) .
Max Starkenburg