默认关注Tapestry5中的tml页面

时间:2013-06-19 11:59:45

标签: tapestry

您好, 我在我的挂毯页面上遇到了奇怪的问题。

在页面上我有三个字段 第1 - 选择框 - > tabindex为1,t:validate =“required”
第二 - 文本字段 - > tabindex是2,t:validate =“required”
3rd - textfield - > tabindex为3,t:validate =“required”

当我的页面加载时,默认焦点位于第二个文本字段,但根据选项卡索引,它必须位于选择框上。

要解决此问题,我在tml页面上使用了以下脚本。

<script type="text/javascript">
   Event.observe(window, 'load', function() {document.getElementById('id').focus();});
</script>

他工作得非常好,页面加载焦点从文本字段转移到选择框,但错误气球在文本字段中弹出。

3 个答案:

答案 0 :(得分:1)

查看Form组件上的autofocus属性。

“如果为true(默认值),则会添加JavaScript以将光标定位到表单中。接收焦点的字段是第一个出错的,或者是必需的或存在的渲染字段(按照以下顺序)优先级)。“

您可能也对JavaScriptSupport.autoFocus(...)

感兴趣

答案 1 :(得分:1)

最后我得到了答案。

这是一个班轮解决方案。只需将autofocus =“false”放在表单组件中,是的就可以了。

默认情况下,自动聚焦值为true,页面将焦点放在字段上取决于某些条件,有些时候表现得很奇怪。

访问以下链接以获取更多信息。 http://tapestry.apache.org/forms-and-form-components-faq.html

答案 2 :(得分:0)

我认为这很可能是因为使用内联<script>来监听窗口的加载事件。尝试通过JavaScriptSupport触发脚本。您可能需要为其提供一个LATE的InitializationPriority。

我仍然不确定为什么它专注于文本字段而不是select?