Las vistas del filtro expuesto de envío automático pierden el foco

9

He configurado una vista con ajax habilitado. También he agregado un filtro expuesto con autoenvío para que, a medida que el usuario escribe en el campo de texto, la vista se actualice automáticamente. El problema es que cuando el formulario se envía automáticamente, el cuadro de texto pierde el foco.

He leído que necesito separar el formulario expuesto en un bloque separado, sin embargo, esta opción no está disponible ya que mi vista es un bloque en sí mismo.

Cualquier ayuda sería apreciada, ya que es un verdadero dolor tener que seguir haciendo clic en el cuadro de texto para seguir escribiendo.

MWay
fuente
2
Este es un problema conocido: drupal.org/node/1217948 y no es tan fácil de solucionar
Daniel Wehner
¿Puedes hacer un exponente_alterno_filtro para cambiar manualmente los valores y agregar tu propio javascript?
Andrew Welch

Respuestas:

3

También una solución para el problema central, pero incluir este js en mi tema resolvió este problema para mí.

vegardjo
fuente
2

Realmente solo tienes una opción aquí.

De una forma u otra, necesita (re) mover su formulario fuera de las vistas.

La razón por la cual el filtro expuesto pierde el foco es porque toda la vista se está reemplazando en ajax. Si su formulario se procesa con la misma vista, simplemente no podrá mantener el foco.

Soluciones (todas implican mover su formulario fuera de la vista):

  • Usar vistas "filtros expuestos en un bloque" Opción recomendada
  • Configure un bloque personalizado para representar el formulario de filtro de exposición (Requerir escribir código)

A continuación se presentan algunas opciones que debe evitar, pero se mencionan aquí como último recurso.

  • Siempre puedes "hackear" tu views.tpl.php para mover tu formulario de exposición fuera del div de la vista principal. Utilizo "hackear" aquí porque esta no es una buena opción. Esto colocará el formulario justo encima de su vista, pero el código JS de vistas solo reemplazará el div de vista. Dicho esto, el JS no solo va a funcionar. Tendrás que arreglar eso.

  • Luego, como último recurso, siempre puede usar JS para mover su formulario. Este es muy desalentador. Porque de nuevo el formulario perderá los comportamientos de JS después de que las vistas actualicen la pantalla

ericduran
fuente
En caso de que alguien más se lo preguntara, creo que la solución recomendada aquí por @ericduran para seleccionar la opción Vistas para poner "formulario expuesto en bloque" solo está disponible si la vista es de una página (no está disponible para una vista como bloque) .
Max Starkenburg