0

我正在使用 JSF 和 Richfaces。我是新人。

我正在寻找有关在关闭后在弹出窗口中重置表单的信息,我不需要验证表单也不会呈现它。我想关闭它,然后当我再次打开它时,我希望表单是干净的。

我已经查看了有关此的信息,但是我没有找到我的案例的答案。我所拥有的是:

<rich:popupPanel ....
     <a4j:outputPanel id="editPaneRegion">
          <h:form id="form2EditPane">
             <h:panelGrid columns="2" id="edit" ...>    
                <rich:validator>
                     <h:outputLabel for="nameContact" value="... " />
                     <h:panelGrid>
               <h:inputText id="nameVontact" value="xbean.selected.name" label="..." required="true" size="20" tabindex="1">        
               <f:validator validatorId="personNameValidator" />
            </h:inputText>
            <rich:message for="nameContact" ajaxRendered="true"/>
        </h:panelGrid>
               </rich:validator>

</h:panelGrid>

....
<a4j:commandButton id="update" value="..." action="#{xBean.edit}" render="form1EditPane:tableContacts, form1EditPane:contactSelect" execute="editPaneRegion" tabindex="6"/>
...
<a4j:commandButton id="close" value="..." oncomplete="#{rich:component('editPane')}.hide();return false;" execute="@this" ajaxSingle="true" immediate="true" tabindex="7"/>

关闭按钮无法正常工作。如果我打开弹出窗口,编辑输入文本,然后关闭弹出窗口,当我再次打开弹出窗口时,它会编辑输入文本,但是我想要原件,因为它应该没有版本。

我发现了同样的问题,但任何事情都可以解决我的问题:我已经尝试过,使用 a4j:region,按钮的不同属性组合:inmediate=true, action={...clean}, ajaxSimple=true, .. 但是它不起作用。

有人为这种情况提供解决方案,我想我错过了一些明显的事情,因为这种行为应该是常见的事情。

4

1 回答 1

1

您只需要重新呈现表单。无论您使用什么来使弹出窗口出现,都会使其也呈现弹出窗口:

<a4j:commandLink … 
    render="popupPanel" oncomplete="#{rich:component('popupPanel')}.show();" />

并且不要嵌套表单,您不必<form>像在 HTML 中那样将输入框包裹起来。

于 2013-06-11T11:19:57.283 回答