ビューが公開されたフィルターの自動送信がフォーカスを失う


9

ajaxを有効にしてビューをセットアップしました。また、ユーザーがテキストフィールドに入力するとビューが自動的に更新されるように、自動送信をオンにした公開フィルターを追加しました。問題は、フォームが自動送信すると、テキストボックスがフォーカスを失うことです。

公開されたフォームを別のブロックに分離する必要があることを読みましたが、私のビューはブロック自体であるため、このオプションは使用できません。

入力を続けるためにテキストボックスをクリックし続けるのは大変な苦痛なので、どんな助けでもありがたいです。


2
これは既知の問題です。drupal.org / node / 1217948であり、簡単に修正することはできません
Daniel Wehner

exposed_filter_alterを使用して手動で値を変更し、独自のJavaScriptを追加できますか?
Andrew Welch 2013

回答:



2

ここでは本当に1つの選択肢しかありません。

何らかの方法でフォームをビューから(再)移動する必要があります。

公開されたフィルターがフォーカスを失うのは、ビュー全体がajaxで置き換えられているためです。フォームが同じビューでレンダリングされている場合は、フォーカスを維持することはできません。

解決策(すべて、フォームをビューの外に移動する必要があります):

  • ビューを使用する "ブロック内の公開フィルター" 推奨オプション
  • カスタムブロックをセットアップして、公開フィルターフォームをレンダリングします(コードの記述が必要)

以下は避けるべきいくつかのオプションですが、ここで最後の手段として言及します。

  • いつでもviews.tpl.phpを「ハック」して、公開フォームをメインビューのdivから移動できます。これは良いオプションではないので、ここでは「ハック」を使用します。これによりフォームがビューの真上に配置されますが、ビューのJSコードはビューのdivを置き換えるだけです。JSは単に機能するわけではないと言われています。あなたはそれを修正する必要があります。

  • 次に、最後の手段として、いつでもJSを使用してフォームを移動できます。これは大変お勧めできません。ビューが表示を更新した後も、フォームはJSの動作を失います。


他の誰かが疑問に思っている場合に備えて、ビューがページである場合は、ビューのオプションを選択して「ブロック内の公開フォーム」を選択するために@ericduranがここで推奨する解決策を使用できると信じています(ブロックとしてのビューでは使用できません)。 。
Max Starkenburg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.