我有一个注册表格的代码。有一些字段和类型为<p:commandButton>.
的提交按钮现在,当我提交按钮时,它会在表单下显示一个数据表,该数据表呈现输入字段的值。
我想在表单提交后清除输入文本字段。但价值仍然存在。
如何清除表单文本字段的值?
<p:panel header="Registration Form" closable="true" closeSpeed="100" toggleable="true" toggleSpeed="100" toggleOrientation="vertical">
<h:panelGrid columns="2" cellpadding="5">
<p:outputLabel value="*First Name"/>
<p:inputText id="firstname" value="#{registrationDetails.firstName}" required="true" label="First Name" requiredMessage="First Name required!"/>
<p:outputLabel value="*Last Name"/>
<p:inputText id="lastname" value="#{registrationDetails.lastName}" required="true" label="Last Name" requiredMessage="Last Name required!"/>
<p:outputLabel value="Location"/>
<p:selectOneMenu id="location" value="#{registrationDetails.location}">
<f:selectItem itemLabel="Select Location" itemValue=""/>
<f:selectItems value="#{registrationDetails.locations}"/>
</p:selectOneMenu>
<p:outputLabel id="email" value="*Email"/>
<p:inputText value="#{registrationDetails.email}" required="true" label="Email" requiredMessage="Email address required!"/>
<p:outputLabel value="*Contact Number"/>
<p:inputText id="contactNumber" value="#{registrationDetails.contactNumber}" autocomplete="false" maxlength="10" required="true" label="Contact Number" requiredMessage="Contact Number required!"/>
<p:outputLabel value="Address"/>
<p:inputTextarea value="#{registrationDetails.address}"/>
</h:panelGrid>
<p:commandButton value="Submit" actionListener="#{registrationDetails.formSubmit}" id="buttonSubmit"
update="form:msg form:regDetailPanel form:regData" ajax="true">
<f:attribute name="fname" value="#{registrationDetails.firstName}"/>
<f:attribute name="lname" value="#{registrationDetails.lastName}"/>
<f:attribute name="loc" value="#{registrationDetails.location}"/>
<f:attribute name="email" value="#{registrationDetails.email}"/>
<f:attribute name="contact" value="#{registrationDetails.contactNumber}"/>
<f:attribute name="address" value="#{registrationDetails.address}"/>
<p:ajax event="click" immediate="true" update="form:regDetailPanel form:regData"/>
</p:commandButton>
答案 0 :(得分:7)
您必须清除辅助bean中的值,以便“#{registrationDetails.firstName}”等值表达式返回null或空字符串。 即在Java代码中,在注册成功后将所有必须清除的值设置为null。
这必须在你的actionListener“#{registrationDetails.formSubmit}”的某个地方完成。
当您使用AJAX时,您必须确保在成功调用ajax之后更新带有文本字段的JSF页面部分。
答案 1 :(得分:0)
您可以使用p:commandButton:
<p:commandButton action="#{myBean.method()}" value="Send" update="myForm" />
当我使用p:commandButton的属性 update =“myForm”时。 提交表单后,表单中字段的值将为空。