richfaces popupPanel:命令按钮需要单击两次
我有一个弹出窗口,上面有一个表单和一个命令按钮。当我单击命令按钮时,我想提交表单并调用操作。
问题是,如果我将命令按钮放在表单中,我必须单击它两次才能调用操作,如果我将它放在表单之外,它不会提交表单。
这是我的代码:
<rich:popupPanel id="popup" modal="true" minWidth="600" minHeight="300"
resizeable="false">
<f:facet name="header">
<h:outputText value="Edit" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#" id="x"
onclick="#{rich:component('popup')}.hide(); return false;">X</h:outputLink>
</f:facet>
<h:form id="dataForm">
<table id="table">
<tr>
<td><h:outputText value="Details:" /></td>
<td><h:inputTextarea id="details"
value="#{errorItemBean.workItem.details}" /></td>
</tr>
</table>
<a4j:commandButton id="submitButton" value="Ok"
action="#{errorItemBean.create}" reRender="errorForm"
oncomplete="#{rich:component('popup')}.hide()">
</a4j:commandButton>
<h:commandButton id="cancelButton" value="Cancel">
<rich:componentControl target="popup" operation="hide" />
</h:commandButton>
</h:form>
</rich:popupPanel>
I have a popup window with a form and a commandButton on it. When I click on the commandButton, I would like to submit the form and call an action.
The problem is that if I put the commandButton in the form, I have to click on it twice to call the action, and if I put it outside the form, it doesn't submit the form.
Here is my code:
<rich:popupPanel id="popup" modal="true" minWidth="600" minHeight="300"
resizeable="false">
<f:facet name="header">
<h:outputText value="Edit" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#" id="x"
onclick="#{rich:component('popup')}.hide(); return false;">X</h:outputLink>
</f:facet>
<h:form id="dataForm">
<table id="table">
<tr>
<td><h:outputText value="Details:" /></td>
<td><h:inputTextarea id="details"
value="#{errorItemBean.workItem.details}" /></td>
</tr>
</table>
<a4j:commandButton id="submitButton" value="Ok"
action="#{errorItemBean.create}" reRender="errorForm"
oncomplete="#{rich:component('popup')}.hide()">
</a4j:commandButton>
<h:commandButton id="cancelButton" value="Cancel">
<rich:componentControl target="popup" operation="hide" />
</h:commandButton>
</h:form>
</rich:popupPanel>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您在打开弹出窗口之前使用了
reRender=":popup"
,则可能会发生这种情况。您需要通过reRender=":dataForm"
重新渲染弹出窗口的表单。另请参阅:
That can happen if you have used
reRender=":popup"
before opening the popup. You need to re-render the popup's form instead byreRender=":dataForm"
.See also: