【发布时间】:2014-01-06 12:49:16
【问题描述】:
我有一个 JSF 页面,其中某些字段在调用其他字段的“onchange”事件时动态呈现。还有一个弹出面板,单击按钮即可打开。 这是页面的简化版本:
<h:form id="testForm">
<h:panelGrid id="testPanel" columns="2">
<h:inputText id="text0" />
<h:inputText id="text1">
<f:ajax event="change" listener="#{popupMBean.renderDynamicData}"
render="@form" />
</h:inputText>
<h:inputText id="text2" rendered="#{popupMBean.renderDynamic}" />
<h:inputText id="text3" />
<a4j:commandButton id="open" value="Open" render="testPopup"
oncomplete="#{rich:component('testPopup')}.show();" />
</h:panelGrid>
</h:form>
<rich:popupPanel id="testPopup" height="100"
domElementAttachment="form" header="Test">
<f:facet name="controls">
<h:commandButton value="Close"
onclick="#{rich:component('testPopup')}.hide()"></h:commandButton>
</f:facet>
<a4j:outputPanel id="test">
<a4j:commandButton id="first" value="First" />
<a4j:commandButton id="second" value="Second" />
</a4j:outputPanel>
</rich:popupPanel>
我有一个要求,我需要使用键盘遍历所有字段。以下是面临的问题:
- 当我单击“打开”按钮时,它会显示弹出面板,但 焦点未设置到弹出窗口中的第一个输入元素。
- 当用户关闭弹出窗口时,焦点应设置为生成弹出窗口的字段或旁边的字段。
- 在字段“text1”上的更改事件被调用后,焦点转移回页面上的第一个输入元素,即“text0”,而不是新呈现的字段“text2”。
谢谢。
【问题讨论】:
标签: richfaces