J'ai configuré une vue avec ajax activé. J'ai également ajouté un filtre exposé avec soumission automatique afin que, lorsque l'utilisateur tape dans le champ de texte, la vue soit automatiquement mise à jour. Le problème est que lorsque le formulaire soumet automatiquement, la zone de texte perd le focus.
J'ai lu que je dois séparer le formulaire exposé dans un bloc séparé, mais cette option n'est pas disponible car ma vue est un bloc lui-même.
Toute aide serait appréciée, car il est vraiment difficile de continuer à cliquer dans la zone de texte pour continuer à taper.
Réponses:
Également une solution de contournement pour le problème principal, mais l' inclusion de ce js dans mon thème a résolu ce problème pour moi.
la source
Vous n'avez vraiment qu'un seul choix ici.
D'une manière ou d'une autre, vous devez (re) déplacer votre formulaire hors des vues.
La raison pour laquelle le filtre exposé perd le focus est que la vue entière est remplacée sur ajax. Si votre formulaire est rendu par la même vue, vous ne pourrez tout simplement pas garder le focus.
Solutions (toutes impliquent de déplacer votre formulaire hors de la vue):
Vous trouverez ci-dessous quelques options à éviter, mais en mentionnant ici en dernier recours.
Vous pouvez toujours "pirater" votre views.tpl.php pour déplacer votre formulaire d'exposition hors de la vue principale. J'utilise "hack" ici car ce n'est pas une bonne option. Cela placera le formulaire juste au-dessus de votre vue, mais le code JS de vues ne fera que remplacer la vue div. Cela étant dit, le JS ne fonctionnera pas seulement. Vous devrez corriger cela.
Ensuite, en dernier recours, vous pouvez toujours utiliser JS pour déplacer votre formulaire. Celui-ci est très décourageant. Parce que là encore, le formulaire va perdre les comportements JS après que les vues mettent à jour l'affichage
la source