[英]Primefaces p:selectOneMenu or p:selectBooleanCheckbox not firing change-event depending on if I use h:form
[英]How to submit form, from p:selectBooleanCheckbox change event
我正在使用素數,並正在處理復雜的表格。 我需要隱藏表單的一部分,具體取決於復選框的值
<p:selectBooleanButton id="input1" .... />
<p:inputText id="input2" />
<!-- the boolean checkbox -->
<p:selectBooleanCheckbox id="checkBox1" value="#{bbean.someBoolValue}" >
<p:ajax event="change" update=":#{p:component('someParentcComponentsId')}" />
</p:selectBooleanCheckbox>
<!-- some input fields here. These will be rendered depending checkBox1 value -->
<p:panel rendered="#{bbean.someBoolValue}" id="hiddingPanel">
<h:panelGrid columns="2" >
<p:inputText id="input3" />
</h:panelGrid>
</p:panel>
到目前為止,我已經完成了這項工作,所以當點擊checkBox1
時, hiddingPanel
會顯示或隱藏。 但是有一個陷阱:這種形式的每個輸入(例如input1
, input2
)的值都將丟失,因為'change'ajax事件未提交其值。
在更新表單之前,如何確保提交所有輸入值?
只要確保僅更新確實需要更新的部分即可。
<p:selectBooleanCheckbox id="checkBox1" value="#{bbean.someBoolValue}" >
<p:ajax event="change" update="hiddingPanel" />
</p:selectBooleanCheckbox>
<!-- some input fields here. These will be rendered depending checkBox1 value -->
<p:panel id="hiddingPanel">
<h:panelGrid columns="2" rendered="#{bbean.someBoolValue}">
<p:inputText id="input3" />
</h:panelGrid>
</p:panel>
請注意,我將rendered
移動到其直接子節點,原因如下所示: 當我想要ajax更新它時,為什么我需要在另一個組件中嵌套一個帶有rendered =“#{some}”的組件?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.