重置JSF表单字段

时间:2013-07-30 16:24:50

标签: forms jsf clear

我知道很多关于这个话题,但是所有的解决方案都指出要创建一个重置按钮......是不是只清除字段并重新填充它们?

这是我的代码

<p:commandButton id="basic" value="#{c.machine}" action="#{updateEntry.setMachine(c.machine)}" oncomplete="dlg1.show();" styleClass="ui-Machinebutton"/>

这会在'updateEntry'中设置值'machine',一旦完成,就会启动对话框'dlg1'

对话框

<p:dialog id="Update_Entry" header="Update Entry" widgetVar="dlg1" modal="true" height="250" dynamic="True" resizable="False">  
                    <h:form prependId="false" id="Update_Entry_Form" method="post" autocomplete="off">  

                            <h:panelGrid id="update_grid" columns="2" style="margin-bottom:10px"> 

                                <f:facet name="header">  
                                    <p:messages />  
                                </f:facet> 
                                <h:outputLabel for="machine" value="Machine *" />  
                                <p:inputText id="machine" value="#{updateEntry.machine}" required="true" requiredMessage="Machine is required">
                                    <f:validateLength minimum="5" maximum="5"/>
                                </p:inputText>

表单第一次加载精细值,但即使更新updateEntry.machine,它也始终加载先前的值。我该如何自动清除它?我正在使用PrimeFaces

1 个答案:

答案 0 :(得分:1)

您在打开之前忘记了ajax更新对话框的内容。这就是为什么它总是显示初始内容,就像第一次呈现页面或最后一次关闭对话框时那样。

相应地这样做:

<p:commandButton ... update=":Update_Entry">