任何人都可以告訴我如何自動設置<h:selectOneMenu>
(或任何其他組件)的值取決於另一個<h:selectOneMenu>
如果存在具有'required'的空元素設置爲表單上的'真'?如果要設置<a4j:support event="onchange" reRender="anotherElement" immediate="true" />
則不會更改,因爲未更改值。但是,如果沒有immediate="true"
,我總是有消息說這個或那個元素不能爲空。這裏的代碼示例不起作用。如果兩個都設置爲需要,如何設置下拉值,具體取決於另一個下拉菜單
<h:outputLabel value="* #{msg.someField}: "/>
<h:panelGrid cellpadding="0" cellspacing="0">
<h:selectOneMenu id="someSelect"
value="#{MyBean.someObj.someId}"
required="true" label="#{msg.someField}"
>
<a4j:support event="onchange" reRender="anotherSelect" limitToList="true" immediate="true"/>
<f:selectItem itemValue=""/>
<f:selectItems value="#{MyBean.someList}"/>
</h:selectOneMenu>
<rich:message for="someSelect" styleClass="redOne"/>
</h:panelGrid>
<h:outputLabel value="* #{msg.anotherField}: "/>
<h:panelGrid cellpadding="0" cellspacing="0">
<h:selectOneMenu id="anotherSelect"
value="#{MyBean.someObj.anotherId}"
required="true" label="#{msg.anotherField}"
>
<f:selectItem itemValue=""/>
<f:selectItems value="#{MyBean.anotherList}"/>
</h:selectOneMenu>
<rich:message for="anotherSelect" styleClass="redOne"/>
</h:panelGrid>
<h:outputLabel value="* #{msg.name}: "/>
<h:panelGrid cellpadding="0" cellspacing="0">
<h:inputText id="myName" value="#{MyBean.someObj.myName}"
required="true" label="#{msg.name}"/>
<rich:message for="myName" styleClass="redOne"/>
</h:panelGrid>
所以,在這裏(我重複),如果我試圖改變「someSelect」然後「anotherSelect」應該更新自己的價值觀,但它不會因爲任何時候,它會得到「someSelect」它得到的值空(如果immediate
設置爲true
)或表單驗證在空元素上失敗。我如何跳過驗證,但從「someSelect」中獲取此更改的值?
是的,謝謝! 很簡單:) – mykola 2010-06-04 07:00:25