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.
Respuestas:
También una solución para el problema central, pero incluir este js en mi tema resolvió este problema para mí.
fuente
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):
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
fuente