公开的视图过滤器自动提交失去焦点


9

我已经设置了启用了ajax的视图。我还添加了带有自动提交功能的公开过滤器,以便在用户在文本字段中键入内容时,视图将自动更新。问题在于,当表单自动提交时,文本框会失去焦点。

我已经读到我需要将公开的表单分成一个单独的块,但是此选项不可用,因为我的观点本身就是一个块。

任何帮助将不胜感激,因为必须不断在文本框中单击才能继续键入,这确实是一个痛苦。


2
这是一个已知的问题:drupal.org/node/1217948并不太容易解决
Daniel Wehner 2012年

您可以做一个暴露的过滤器_alter来手动更改值并添加自己的JavaScript吗?
Andrew Welch

Answers:



2

您在这里实际上只有一个选择。

您需要以一种或另一种方式(重新)将表单移出视图。

暴露的滤镜失去焦点的原因是因为在ajax上替换了整个视图。如果您的表单是通过同一视图呈现的,则您将无法保持焦点。

解决方案(所有解决方案都涉及将表单移出视图):

以下是您应避免的一些选项,但在此没有提及。

  • 您始终可以仅“ hack”您的views.tpl.php即可将您的公开表单移出主视图div。我在这里使用“ hack”,因为这不是一个不错的选择。这会将表单放置在视图上方,但是视图JS代码只会替换视图div。话虽这么说,JS不能正常工作。您需要解决该问题。

  • 然后,作为最后的选择,您始终可以仅使用JS移动表单。强烈建议不要这样做。因为在视图更新显示之后,表单再次将失去JS行为


以防万一其他人想知道,我相信@ericduran在这里推荐的解决方案选择了Views的选项,以将“暴露的表单置于块中”,如果视图是页面的话则可用(不适用于块视图) 。
Max Starkenburg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.