Ansichten belichtet Filter automatisch senden verliert den Fokus

9

Ich habe eine Ansicht mit aktiviertem Ajax eingerichtet. Ich habe auch einen exponierten Filter mit automatischer Übermittlung hinzugefügt, damit die Ansicht automatisch aktualisiert wird, wenn der Benutzer das Textfeld eingibt. Das Problem ist, dass das Textfeld beim automatischen Senden des Formulars den Fokus verliert.

Ich habe gelesen, dass ich das exponierte Formular in einen separaten Block trennen muss, diese Option ist jedoch nicht verfügbar, da meine Ansicht selbst ein Block ist.

Jede Hilfe wäre willkommen, da es ein echtes Problem ist, immer wieder in das Textfeld zu klicken, um weiter zu tippen.

MWay
quelle
2
Dies ist ein bekanntes Problem: drupal.org/node/1217948 und ist nicht so einfach zu beheben
Daniel Wehner
Können Sie einen exponierten_Filter_alter ausführen, um Werte manuell zu ändern und Ihr eigenes Javascript hinzuzufügen?
Andrew Welch

Antworten:

2

Sie haben hier wirklich nur eine Wahl.

Auf die eine oder andere Weise müssen Sie Ihr Formular aus den Ansichten (neu) verschieben.

Der Grund, warum der belichtete Filter den Fokus verliert, liegt darin, dass die gesamte Ansicht auf Ajax ersetzt wird. Wenn Ihr Formular mit derselben Ansicht gerendert wird, können Sie den Fokus auf keinen Fall beibehalten.

Lösungen (Alle beinhalten das Verschieben Ihres Formulars aus der Ansicht):

  • Verwenden Sie Ansichten "Belichtete Filter in einem Block". Empfohlene Option
  • Richten Sie einen benutzerdefinierten Block ein, um das Expose-Filterformular zu rendern (Schreibcode erforderlich).

Im Folgenden finden Sie einige Optionen, die Sie vermeiden sollten, die Sie hier jedoch als letzten Ausweg erwähnen sollten.

  • Sie können Ihre views.tpl.php jederzeit einfach "hacken", um Ihr Exposure-Formular aus der Hauptansicht div zu verschieben. Ich benutze hier "Hack", weil dies keine gute Option ist. Dadurch wird das Formular direkt über Ihrer Ansicht platziert, aber der JS-Code für Ansichten ersetzt nur die Ansicht div. Davon abgesehen wird der JS nicht nur funktionieren. Sie müssen das beheben.

  • Als letzten Ausweg können Sie Ihr Formular immer mit JS verschieben. Dieser ist sehr entmutigend. Da das Formular erneut das JS-Verhalten verliert, nachdem Ansichten die Anzeige aktualisiert haben

Ericduran
quelle
Nur für den Fall, dass sich jemand anderes wundert, glaube ich, dass die hier von @ericduran empfohlene Lösung zum Auswählen der Option "Ansichten" zum Einfügen von "exponiertem Formular in Block" nur verfügbar ist, wenn es sich bei der Ansicht um eine Seite handelt (für eine Ansicht als Block nicht verfügbar). .
Max Starkenburg