Filter tampilan terbuka otomatis mengirim kehilangan fokus

9

Saya telah menyiapkan tampilan dengan ajax diaktifkan. Saya juga telah menambahkan filter terbuka dengan autosubmit sehingga ketika pengguna mengetik di bidang teks tampilan akan diperbarui secara otomatis. Masalahnya adalah ketika form autosubmits, kotak teks kehilangan fokus.

Saya telah membaca bahwa saya perlu memisahkan formulir yang terbuka ke blok yang terpisah, namun opsi ini tidak tersedia karena pandangan saya adalah blok itu sendiri.

Bantuan apa pun akan dihargai, karena itu adalah rasa sakit yang nyata harus terus mengklik di kotak teks untuk terus mengetik.

MWay
sumber
2
Ini adalah masalah yang diketahui: drupal.org/node/1217948 dan tidak mudah untuk diperbaiki
Daniel Wehner
Bisakah Anda melakukan exposed_filter_alter untuk secara manual mengubah nilai dan menambahkan javascript Anda sendiri?
Andrew Welch

Jawaban:

3

Juga solusi untuk masalah inti, tetapi memasukkan ini dalam tema saya memecahkan masalah ini untuk saya.

vegardjo
sumber
2

Anda benar-benar hanya punya satu pilihan di sini.

Dengan satu atau lain cara, Anda perlu (kembali) mengeluarkan formulir dari tampilan.

Alasan mengapa filter terbuka kehilangan fokus adalah karena seluruh tampilan diganti pada ajax. Jika formulir Anda ditampilkan dengan tampilan yang sama, tidak mungkin Anda bisa tetap fokus.

Solusi (Semua melibatkan pemindahan formulir Anda dari tampilan):

  • Gunakan tampilan "filter terbuka di blok" Opsi yang disarankan
  • Siapkan blok khusus untuk merender formulir filter paparan (Membutuhkan kode penulisan)

Di bawah ini adalah beberapa opsi yang harus Anda hindari, tetapi menyebut di sini sebagai pilihan terakhir.

  • Anda selalu dapat "meretas" views.tpl.php Anda untuk memindahkan formulir paparan Anda dari div tampilan utama. Saya menggunakan "retas" di sini karena ini bukan opsi yang bagus. Ini akan menempatkan formulir tepat di atas tampilan Anda, tetapi kode tampilan JS hanya akan menggantikan tampilan div. Yang sedang berkata JS tidak akan hanya bekerja. Anda harus memperbaikinya.

  • Kemudian sebagai pilihan terakhir Anda selalu bisa menggunakan JS untuk memindahkan formulir Anda. Yang ini sangat mengecilkan hati. Karena sekali lagi formulir akan kehilangan perilaku JS setelah tampilan memperbarui tampilan

ericduran
sumber
Untuk berjaga-jaga jika ada orang lain yang bertanya-tanya, saya percaya solusi yang direkomendasikan di sini oleh @ericduran untuk memilih opsi Tampilan untuk meletakkan "form terbuka di blok" hanya tersedia jika tampilan halaman (itu tidak tersedia untuk tampilan sebagai blok) .
Max Starkenburg