我需要使用p:selectonemenu并禁用它,即它应该在帖子中提交但它应该是只读的。请注意,我不想使用disabled属性,因为这会阻止发布。
我在这个论坛上已经读到这可以通过使用隐藏字段来实现,但是我不明白如何实现它。如果有人能在这方面为我提供一些帮助,我将不胜感激。
<p:inputText id="cpr" value="#{customerbean.customer.cpr}">
<p:ajax event="change" listener="#{customerbean.fetchCustomerDatafromCBS}" update="nationality address passportno name nationality dob address mailingaddress gender mobileno landlineno otherno email maritalstatus nochildren" immediate="true" >
<f:param name="cprNumber" value="#{customerbean.customer.cpr}"/>
</p:ajax>
<f:validator validatorId="cprValidator" />
</p:inputText>
<p:selectOneMenu id="gender" value="#{customerbean.customer.gender}" required="!#{customerbean.disabled}" requiredMessage="#{text['validation.error.required.gender']}" disabled="#{customerbean.disabled}">
<f:selectItem itemLabel="Select One" itemValue="" noSelectionOption="true" />
<f:selectItem itemLabel="Male" itemValue="Male" />
<f:selectItem itemLabel="Female" itemValue="Female" />
</p:selectOneMenu>
<p:inputText type="hidden" value="#{customerbean.customer.gender}" />
答案 0 :(得分:5)
我在这个论坛上看过,这可以通过使用隐藏来实现 字段,但我不明白这是如何实现的。
禁用<p:selectOneMenu>
,然后创建<p:inputText type="hidden" value="#{bean.property}" />
。 value
属性必须与<p:selectOneMenu>
相同。如有必要,请使用相同的转换器。
这样,<p:selectOneMenu>
将被禁用给用户,但该值将由隐藏的<p:inputText />
提交。
请记住隐藏的输入仍然是<p:inputText />
,因此需要在其值更改时进行更新。为其分配ID,并确保将其添加到update
的{{1}}。