มุมมองตัวกรองที่เปิดเผยโดยอัตโนมัติส่งเสียโฟกัส


9

ฉันมีการตั้งค่ามุมมองที่เปิดใช้งาน Ajax ฉันได้เพิ่มตัวกรองที่เปิดเผยด้วยการส่งอัตโนมัติเพื่อให้ผู้ใช้พิมพ์ในช่องข้อความมุมมองจะอัปเดตโดยอัตโนมัติ ปัญหาคือว่าเมื่อแบบฟอร์มอัตโนมัติส่งกล่องข้อความสูญเสียโฟกัส

ฉันได้อ่านแล้วว่าฉันต้องแยกแบบฟอร์มที่เปิดเผยออกเป็นบล็อกแยกต่างหากอย่างไรก็ตามตัวเลือกนี้ไม่สามารถใช้งานได้เนื่องจากมุมมองของฉันเป็นตัวบล็อกเอง

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมเพราะมันเป็นความเจ็บปวดที่แท้จริงต้องคลิกในกล่องข้อความเพื่อให้การพิมพ์


2
ปัญหานี้เป็นปัญหาที่รู้จักกัน: drupal.org/node/1217948และไม่ได้เป็นเรื่องง่ายที่จะแก้ไข
แดเนียล Wehner

คุณสามารถใช้ exposed_filter_alter เพื่อเปลี่ยนค่าด้วยตนเองและเพิ่มจาวาสคริปต์ของคุณเองได้หรือไม่?
Andrew Welch

คำตอบ:



2

คุณมีทางเลือกเดียวที่นี่จริง ๆ

ไม่ทางใดก็ทางหนึ่งคุณจะต้องย้ายแบบฟอร์มของคุณออกจากมุมมอง

เหตุผลที่ฟิลเตอร์ที่เปิดเผยสัมผัสไม่ได้โฟกัสเนื่องจากมุมมองทั้งหมดถูกแทนที่บน ajax หากรูปแบบของคุณถูกแสดงในมุมมองเดียวกันจะไม่มีทางที่คุณจะสามารถมุ่งเน้นได้

โซลูชัน (ทั้งหมดเกี่ยวข้องกับการย้ายแบบฟอร์มของคุณออกจากมุมมอง):

  • ใช้ตัวเลือกที่แนะนำ " ตัวกรองแบบเปิดเผยในบล็อก" มุมมอง
  • ตั้งค่าบล็อกที่กำหนดเองเพื่อแสดงแบบฟอร์มตัวกรองที่เปิดเผย (ต้องมีการเขียนโค้ด)

ด้านล่างเป็นตัวเลือกที่คุณควรหลีกเลี่ยง แต่การกล่าวถึงที่นี่เป็นทางเลือกสุดท้าย

  • คุณสามารถเพียงแค่ "แฮ็ค" views.tpl.php ของคุณเพื่อย้ายแบบฟอร์มการเปิดเผยของคุณออกจาก div มุมมองหลัก ฉันใช้ "แฮ็ค" ที่นี่เพราะนี่ไม่ใช่ตัวเลือกที่ดี สิ่งนี้จะวางแบบฟอร์มไว้เหนือมุมมองของคุณ แต่มุมมองโค้ด JS จะไปแทนที่ div view เท่านั้น ที่ถูกกล่าวว่า JS จะไม่ทำงานเพียง คุณจะต้องแก้ไข

  • จากนั้นเป็นทางเลือกสุดท้ายคุณสามารถใช้ JS เพื่อย้ายแบบฟอร์มของคุณได้ตลอดเวลา อันนี้ท้ออย่างมาก เนื่องจากรูปแบบอีกครั้งจะทำให้พฤติกรรมของ JS สูญเสียไปหลังจากที่มุมมองอัพเดตการแสดงผล


ในกรณีที่คนอื่นสงสัยฉันเชื่อว่าวิธีการแก้ปัญหาที่แนะนำโดย @ericduran เพื่อเลือกตัวเลือกของผู้ชมที่จะใส่ "แบบฟอร์มที่เปิดเผยในบล็อก" จะสามารถใช้ได้ถ้ามุมมองเป็นของหน้าเว็บ (ไม่สามารถดูเป็นบล็อกได้) .
Max Starkenburg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.