您好, 我在我的挂毯页面上遇到了奇怪的问题。
在页面上我有三个字段
第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>
他工作得非常好,页面加载焦点从文本字段转移到选择框,但错误气球在文本字段中弹出。
答案 0 :(得分:1)
查看Form组件上的autofocus
属性。
“如果为true(默认值),则会添加JavaScript以将光标定位到表单中。接收焦点的字段是第一个出错的,或者是必需的或存在的渲染字段(按照以下顺序)优先级)。“
感兴趣答案 1 :(得分:1)
最后我得到了答案。
这是一个班轮解决方案。只需将autofocus =“false”放在表单组件中,是的就可以了。
默认情况下,自动聚焦值为true,页面将焦点放在字段上取决于某些条件,有些时候表现得很奇怪。
访问以下链接以获取更多信息。 http://tapestry.apache.org/forms-and-form-components-faq.html
答案 2 :(得分:0)
我认为这很可能是因为使用内联<script>
来监听窗口的加载事件。尝试通过JavaScriptSupport触发脚本。您可能需要为其提供一个LATE的InitializationPriority。
我仍然不确定为什么它专注于文本字段而不是select?